# physicsLab
当我们在物理实验室AR纯手动做实验的时候, 往往会遇到一些琐碎、麻烦但又不得不做的事情, 比如:重复的搭建某些电路, 调整元件的位置, 电路内部结构的重复。这些问题都可以通过使用physicsLab
生成这些电路结构来轻易解决!于是我写了physicsLab
, 让你能用Python
在物实做实验。
而在参与物实社区的时候, 有时候又会遇到一些手动很麻烦的情况, 我们就可以使用physicsLab.web
来通过网络api操作物实社区。
更多好用的功能等你来发现
Python3.8+
能在该平台上运行并且能够读写文件, 比如Windows7+
, Linux
, MacOS
, Android
自版本2.0.0
及之后, physicsLab
会逐步增加兼容的考虑与支持。承诺stable
的api将永远不会移除, 行为几乎不会改变, 除非物实更改了一些api的行为导致physicsLab的底层api的行为被迫发生改变或者更改几乎没有任何影响。
ExperimentOpenedError, ExperimentClosedError, ExperimentExistError, ExperimentNotExistError
会stable
stable
class Experiment
会stable
class User, anonymous_login, email_login, token_login
会stable
__version__
会stable
physicsLab
的版本发布采取快照的方式, physicsLab
仅会维护trunk
pip install physicsLab
在某些非正常情况, 你可能无法顺利使用pip
, 此时你可以换为该命令来解决该问题:
python -m pip install physicsLab
Note: 在
Windows
下你可以输入py
来使用Python
,Linux, MacOS
下可能需要输入python3
或者python3.x
(python
加上你的Python
版本)来使用python
pip install plmidi
pip install pygame
点击跳转至plmidi
utf-8
。但在一些非正常情况, 存档的编码可能被改变。虽然physicsLab
有一定的处理存档编码问题的能力, 但如果还是出现了问题, 请输入该命令:pip install chardet
此时physicsLab
会自动调用chardet
来处理更加棘手的文件编码问题。
Note: 每次通过
physicsLab
生成了一个新的存档之后, 都需要重新加载物实的本地存档, 即点击从本地读取
, 再次点击进入对应存档
pip
安装的包会被放在site-packages
文件夹下
这大概率是因为pip安装的包所对应的site-packages
与你使用的Python
对应的site-packages
不一样导致的
解决方案:找到ide调用的python
对应的site-packages
, 然后把physicsLab
与physicsLab.egg-info
复制过去
同时我推荐去学一下Python
的虚拟环境venv
, 有效解决此问题
如果此方法失效了, 虽然这一定不是这个方法的问题, 但你还可以在python的开头写上这两行代码来解决这个问题:
import sys
sys.path.append("/your/path/of/physicsLab") # 将字符串替换为你想添加的路径
这个方法很丑陋但很简单好用, 可以帮你快速解决问题, 毕竟能跑起来就很不错了
其原理是Python
会在sys.path
这个列表里面的路径去寻找Python Package
, 若未找到则会报错。因此该方法的原理就是把Python
找不到的路径加进去, Python
就找到了
注:每次运行的时候的sys.path
都是临时的, 因此该方法必须让Python
在每次运行的时候都执行一遍
如果physicsLab
抛出AssertionError
, 请报告 bug (请在issue中附上最小复现)
目前physicsLab
在windows
上的支持最好, 在其他操作系统上仅支持手动导入/导出存档(默认在physicsLabSav
文件夹中)。
在安卓上要使用physicsLab
的话, 可以通过qpython
或者Termux
(推荐) 进行使用
qpython v3.2.5
中大大削减了python在文件路径操作方面的权限, 这意味着在qpython上使用physicsLab生成的存档将很难被物实导入, 因为物实没权限访问不了, 但此问题在qpython v3.2.3中不存在, 推荐下载该版本。Termux
的话, 需要设置输出存档的路径到/storage/emulated/0/
(不同安卓设备路径可能不同), 或者手动mv
一下生成的存档, 这样才能让物实访问对应的存档。由于physicsLab
使用中文注释而且物实的存档也使用了中文, 因此我建议你手动在Python
代码的第一行添加如下注释:
# -*- coding: utf-8 -*-
不过由于编码导致问题的情况似乎很少
physicsLab
拥有优秀的与物实存档交互的能力, 你甚至可以使用程序完成部分工作之后你再继续完成或者让程序在你已完成的实验的基础上继续完成。
如此灵活的功能使得physicsLab
即使是在Python
的shell
上也能出色的完成工作!physicsLab
为纯Python
库, 其c拓展部分(播放midi的部分)被放到了plmidi
中, 但plmidi
不是必须需要的。纯Python
库通常意味着更容易使用, 更少的问题。physicsLab
使用black
工具自动格式化代码风格
black physicsLab --exclude="mido|vendor"
你可以从更新文档、bugfix、写测试代码开始入手
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。