如何让Python看到通过apt安装的模块?

时间:2015-10-12 05:37:20

标签: python travis-ci dbus

我正在尝试使用Travis CI来运行我的Python代码测试。

我的项目需要dbus模块,而且它在PyPi中不可用,所以我必须通过apt安装它。

问题是测试因ImportError失败:没有名为'dbus'的模块。这很奇怪,因为我可以在报告中看到成功安装所需的软件包。这是我的.travis.ymlTravis log的例子。

我做错了吗?

1 个答案:

答案 0 :(得分:2)

在您发布的travis日志中,所有软件包都安装在虚拟环境中。

虚拟环境是在干净的状态下创建的 - 因此它没有任何指向系统库的链接,事实上它在documentation中声明:

  

CI环境为每个Python使用单独的virtualenv实例   版。系统Python不使用,不应该依赖。如果你   需要安装Python包,通过pip而不是apt。

     

如果您决定使用apt,请注意仅限Python系统包   在Ubuntu 12.04 LTS上包含Python 2.7库。这意味着   从存储库安装的软件包在其他软件包中不可用   即使您使用-system-site-packages选项,也可以使用virtualenv。

我相信它解释了你的问题:

  1. 虚拟环境是隔离的,没有指向系统包的链接。
  2. 即使您使用apt,仅限于Python 2.7 ,并且您正在尝试安装python3-包。