如何让 Python 看到通过 apt 安装的模块?
How to make Python see module installed via apt?
我正在尝试使用 Travis CI 来 运行 测试我的 Python 代码。
我的项目需要 dbus 模块,但 PyPi 中没有,所以我必须通过 apt 安装它。
问题是测试失败并显示 ImportError:没有名为 'dbus' 的模块。这很奇怪,因为我可以在报告中看到有关成功安装所需软件包的信息。这是我的 .travis.yml and example of Travis log.
我做错了什么吗?
根据您发布的 travis 日志,您所有的包都安装在虚拟环境中。
虚拟环境是在干净的状态下创建的 - 因此它没有任何 link 系统库,事实上它在 documentation:
CI Environment uses separate virtualenv instances for each Python
version. System Python is not used and should not be relied on. If you
need to install Python packages, do it via pip and not apt.
If you decide to use apt anyway, note that Python system packages only
include Python 2.7 libraries on Ubuntu 12.04 LTS. This means that the
packages installed from the repositories are not available in other
virtualenvs even if you use the –system-site-packages option.
我相信它可以解释您的问题:
- 虚拟环境是隔离的,没有 link 系统包。
- 即使你使用apt,它仅限于Python 2.7,你正在尝试安装一个
python3-
包。
我正在尝试使用 Travis CI 来 运行 测试我的 Python 代码。
我的项目需要 dbus 模块,但 PyPi 中没有,所以我必须通过 apt 安装它。
问题是测试失败并显示 ImportError:没有名为 'dbus' 的模块。这很奇怪,因为我可以在报告中看到有关成功安装所需软件包的信息。这是我的 .travis.yml and example of Travis log.
我做错了什么吗?
根据您发布的 travis 日志,您所有的包都安装在虚拟环境中。
虚拟环境是在干净的状态下创建的 - 因此它没有任何 link 系统库,事实上它在 documentation:
CI Environment uses separate virtualenv instances for each Python version. System Python is not used and should not be relied on. If you need to install Python packages, do it via pip and not apt.
If you decide to use apt anyway, note that Python system packages only include Python 2.7 libraries on Ubuntu 12.04 LTS. This means that the packages installed from the repositories are not available in other virtualenvs even if you use the –system-site-packages option.
我相信它可以解释您的问题:
- 虚拟环境是隔离的,没有 link 系统包。
- 即使你使用apt,它仅限于Python 2.7,你正在尝试安装一个
python3-
包。