我有以下文件夹结构
myapp\
myapp\
__init__.py
tests\
test_ecprime.py
我的密码是
^{pr2}$我有以下测试设置:
import pytest
import sys
import pprint
def test_cool():
pprint.pprint(sys.path)
assert False
生成以下路径:
['C:\\Users\\wwerner\\programming\\myapp\\tests',
'C:\\Users\\wwerner\\programming\\envs\\myapp\\Scripts',
'C:\\Windows\\system32\\python34.zip',
'C:\\Python34\\DLLs',
'C:\\Python34\\lib',
'C:\\Python34',
'C:\\Users\\wwerner\\programming\\envs\\myapp',
'C:\\Users\\wwerner\\programming\\envs\\myapp\\lib\\site-packages']
当我试图import myapp
时,我得到了以下错误:
ImportError: No module named 'ecprime'
所以看起来它没有将当前目录添加到我的路径中。在
通过将我的导入行改为如下所示:
import sys
sys.path.insert(0, '.')
import myapp
然后我就可以毫无问题地导入myapp
。在
为什么在运行pytest时我的当前目录没有显示在路径中?我唯一的解决方法是将.
插入sys.path
?(如果重要的话,我会使用python3.4)
在系统路径自动包含脚本的目录,而不是当前的工作目录。在
我猜你的脚本放在
tests
目录中。基于此假设,您的代码应该如下所示:使用环境变量^{} 。在
在Windows中:
在Unix中:
^{pr2}$啊哈!在
在比较了mycookiecutter repo的布局之后,结果发现它比这简单得多(也更好)。在
只需将
__init__.py
文件添加到我的test dir,就可以从主目录运行py.test
。在相关问题 更多 >
编程相关推荐