我有以下文件夹结构;
myapp\
myapp\
__init__.py
tests\
test_ecprime.py
我的密码是
C:\Users\wwerner\programming\myapp\
我有以下测试设置:
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
? (如果重要的话,我正在使用 Python 3.4)