2017-06-10 106 views
2

我已经安装了pyhash,为什么总是说它找不到该模块?谁能帮我?无法在Travis CI上构建python项目

这里是我的.travis.yml:

language: python 
before_install: 
    - sudo apt-get -qq update 
    - sudo apt-get install libboost-all-dev 
python: 
    - "2.7" 
install: 
    - sudo pip install pyhash 
script: py.test 

这是我的项目目录:

/bloom 
    __init__.py 
    /src 
     __init__.py 
     f1.py 
     f2.py 
    /test 
     __init__.py 
     test_f1.py 
     test_f2.py 

的错误信息是:

ImportError: No module named pyhash

但我见过它安装在cmd窗口中。

+2

请出示错误产生的问题。而且我认为你不需要sudo和pip - 只需'pip install'就足够了。 – phd

+0

如果你没有启用它,你在Travis中如何使用'sudo'? –

+0

我已经尝试添加sudo启用,它仍然不起作用 – preyta

回答

0

TL; DR:尝试删除所有sudo调用,使用addon:apt来安装升压要求和pip install --user pyhash(但是这对python3.5没有帮助)。

我做了几个测试,看起来好像你使用sudo pip install来安装软件包,然后你的安装脚本用户看不到它。例如,请参阅this travis build。 在我的测试中,如果sudo: required被添加到.travis.yml或没有,那么无关紧要。

不幸的是without sudo不可能pip install pyhash,因为PermissionError: [Errno 13] Permission denied: '/usr/lib/libboost_python.so'错误。

但是我还发现在stackoverflow上的this问题,它看起来像你可以使用pip install --user而不是sudo pip install

我也tested这种方法,不幸的是你不能在我的配置中使用--user。错误:Can not perform a '--user' install. User site-packages are not visible in this virtualenv.

所以最后我试图用的apt addon代替sudo apt-get install,以确保不使用sudo:required但也did not help

也许你将有更多的运气python2.7,如果没有拉升travis-ci