gpt4 book ai didi

python - py.test 找不到模块

转载 作者:太空狗 更新时间:2023-10-29 17:16:56 26 4
gpt4 key购买 nike

这个问题与以下问题有关,但没有在那里回答:

我有一个具有以下树结构的 python 模块:

mcts
|- setup.py
|- mcts
|- __init__.py
|- uct.py
|- toy_world_state.py
|- test
|- test_uct.py
|- test_toy_world_state.py

我在某个目录下创建了一个virtualenv

$ mkdir virtual
$ virtualenv --system-site-packages virtual
$ source virtual/bin/activate

然后我安装我的包:

$ cd /path/to/mcts
$ pip install -e .

现在我尝试运行测试:

$ py.test mcts
================================================== test session starts ==================================================
platform linux -- Python 3.4.2 -- py-1.4.26 -- pytest-2.6.4
collected 0 items / 2 errors

======================================================== ERRORS =========================================================
__________________________________ ERROR collecting mcts/test/test_toy_world_state.py ___________________________________
mcts/test/test_toy_world_state.py:4: in <module>
from mcts.toy_world_state import *
E ImportError: No module named 'mcts'
________________________________________ ERROR collecting mcts/test/test_uct.py _________________________________________
mcts/test/test_uct.py:4: in <module>
from mcts.uct import *
E ImportError: No module named 'mcts'
================================================ 2 error in 0.02 seconds ===============================================

如果我转到任何路径并尝试在 ipython 中导入模块,它会起作用:

$ cd
$ ipython

In [1]: import mcts.uct

In [2]: mcts.uct?
Type: module
String form: <module 'mcts.uct' from '/home/johannes/src/mcts/mcts/uct.py'>
File: /home/johannes/src/mcts/mcts/uct.py
Docstring: <no docstring>

如果我从 pycharm 中运行 pytest,它就可以工作。 (但我不知道pycharm中到底发生了什么神奇的事情……)

虽然 echo $PYTHONPATH 返回一个空字符串,但 sys.path 似乎是正确的:

>>> import sys; print(sys.path)
['/home/johannes/src/mcts/virtualenvs/teste/lib/python3.4/site-packages',
'/home/johannes/src/mcts', '', '/usr/bin',
'/usr/lib/python3.4/site-packages/GitPython-0.3.2.RC1-py3.4.egg',
'/usr/lib/python34.zip', '/usr/lib/python3.4',
'/usr/lib/python3.4/plat-linux', '/usr/lib/python3.4/lib-dynload',
'/usr/lib/python3.4/site-packages',
'/usr/lib/python3.4/site-packages/IPython/extensions',
'/home/johannes/.ipython']

我必须做什么才能让 pytest 运行?

最佳答案

我自己修好了。出于某种原因,pytest 没有得到正确的 virtualenv。在 virtualenv 中安装 pytest 解决了它

source virtualenvs/teste/bin/activate
pip install pytest

关于python - py.test 找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29164213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com