我该如何python3-autopilot
使用python3 -m venv venv
?
我已经安装了python3-autopilot
(Ubuntu 的“轻松编写和运行集成测试的实用程序”)sudo apt-get install -y python3-autopilot
。
尽管我更喜欢使用python3-autopilot
来安装pip install
。
笔记:autopilot
在 PyPI 上 不是 python3-autopilot
。
python3-autopilot
是版本 1.6.1和autopilot
在 PyPI 上只有 0.3.0 版本并且似乎是一个完全不同的包。在
python3 -m venv venv
和之前. ./venv/bin/activate
,我可以from autopilot.input import Mouse
,但没有来自我的虚拟环境的包。之后
. ./venv/bin/activate
,from autopilot.input import Mouse
说ModuleNotFoundError: No module named 'autopilot'
答案1
Autopilot 无法在 python 虚拟环境中构建,因为它需要一些 上没有的包
pypi
。相反,要么使用源代码树中的 autopilot,要么构建 debian 包。
因此,似乎该软件包是故意不从 PyPI 提供的,因此pip install
默认情况下无法使用。也许有一种方法可以使用自定义源,我不确定,但“从源代码树使用”选项似乎对我有用:
git clone -b master https://git.launchpad.net/autopilot
进入你的项目目录。- 将实际的包目录上移(您实际需要的 Python 文件):
mv autopilot/ autopilot-src/
mv autopilot-src/autopilot/ ./autopilot/
- 激活你的
venv
。假设它在当前目录中:. venv/bin/activate
。 - 安装一些必需的依赖项:
pip install psutil decorator testtools
。(我通过反复试验确定了这些。) - 现在可以使用该包了。在
python
我可以做from autopilot.input import Mouse
。
笔记:
- 尽管我已经测试过这一点,直到成功导入我的包
venv
,但我不能说在实际使用它时不会出现错误。- 您有点违背了此包的预期环境,它似乎是 Ubuntu/Debian 系统 Python 环境。请注意,该
apt
包有许多其他依赖项,甚至非 Python 依赖项。 - 就这一点而言,我在
sudo apt install python3-autopilot
上述步骤之前确实这样做了,并且有可能那安装了一些依赖项,软件包仍将依赖这些依赖项。即使如此,venv
我们也无法保证软件包不需要某些系统(非 Python)依赖项。
- 您有点违背了此包的预期环境,它似乎是 Ubuntu/Debian 系统 Python 环境。请注意,该
- 这种方法意味着您不能简单地将包添加到您的虚拟环境中
requirements.txt
,因此如果您希望其他人能够重现您的环境,您必须记录特殊说明。
答案2
您可以使用venv的参数--system-site-packages
来使用apt安装的自动驾驶仪。
python3 -m venv --system-site-packages venv
. venv/bin/activate
python
>>> from autopilot.input import Mouse
>>>