在使用的virtualenv鼻子问题
-
21-08-2019 - |
题
我无法在virtualenv中项目中使用鼻(nosetests) - 它似乎无法找到安装在的virtualenv环境软件包
。奇怪的是,我可以设置
test_suite = 'nose.collector'
在setup.py和
运行测试就好python setup.py test
但在运行nosetests直时,有各种进口的错误。
我已经与两个鼻子的全系统的安装和的virtualenv鼻子包和没有运气尝试过。
任何想法?
谢谢!
解决方案
您能够运行myenv/bin/python /usr/bin/nosetests
?这应该使用虚拟环境的库集中运行的鼻子。
其他提示
您需要安装在虚拟环境中鼻子的副本。为了强制安装鼻子进入virtualenv中,即使它已安装在全球站点包,运行与pip install
标志-I
:
(env1)$ pip install nose -I
从此可以只运行nosetests
如常。
在相同的情况下,我需要重新加载virtualenv
的路径时被正确地更新:
deactivate
env/bin/activate
我有类似的问题。以下解决方法帮助:
python `which nosetests`
(而不是仅仅nosestests
)
下面是什么对我的作品:
$ virtualenv --no-site-packages env1
$ cd env1
$ source bin/activate # makes "env1" environment active,
# you will notice that the command prompt
# now has the environment name in it.
(env1)$ easy_install nose # install nose package into "env1"
我创建为你上面提到过,在其slither
,相同setup.py
属性一个真正的基本包test_suite
。然后我划归env1/src
包源。
如果你看里面env1/src
,你会看到:
slither/setup.py
slither/slither/__init__.py
slither/slither/impl.py # has some very silly code to be tested
slither/slither/tests.py # has test-cases
我可以使用test
子命令运行测试:
(env1)$ pushd src/slither
(env1)$ python setup.py test
# ... output elided ...
test_ctor (slither.tests.SnakeTests) ... ok
test_division_by_zero (slither.tests.SnakeTests) ... ok
Ran 2 tests in 0.009s
OK
(env1)$ popd
或者,我可以nosetests
运行相同的测试:
(env1)$ pushd src
(env1)$ nosetests slither/
..
Ran 2 tests in 0.007s
OK
(env1)$ popd
另外请注意,nosetests
可以挑剔的可执行文件。如果你想让它来发现是可执行的Python模块测试,您可以通过--exe
。
如果这些方法都失败,请尝试在VENV安装的鼻子,和/或运行nosetests-2.7
。我相信@安德烈 - 宗卡的回答有同样的效果,如果你的VENV蟒2.7
也许这是最近的改变,但我,当我通过PIP安装nosetests,有安装在.virtualenvs/<env>/bin
,其中(勿庸置疑)与所述的virtualenv正确操作执行的nosetests。
您可能会被安装在其他地方你nosetests
与一个比安装在您的virtualenv更高优先级的PATH
。一个快速的方法来给安装在当前的virtualenv重中之重nose
模块和相关nosetests
脚本编辑您的PATH
:
export PATH=/path/to/current/virtualenv/bin:$PATH