两个py文件:
./src/foo.py
def bar ():
print 'bar!'
./tests/testfoo.py
from foo import bar
print 'testing'
bar ()
在根文件夹'./'中,调用
python ./tests/testfoo.py
结果是
Traceback (most recent call last):
File "./tests/testfoo.py", line 1, in <module>
from foo import bar
ImportError: No module named foo
运行 testfoo.py 但解释器自然找不到模块 foo。我可以给解释器任何参数以在文件夹“src”中查找模块吗?
编辑 #1
还添加了两个空的init.py 文件。
./src/__init__.py
./tests/__init__.py
仍然出现同样的错误。
编辑 #2(解决方案)
我通过添加一个新的初始化py文件解决了问题
准备.py
import os, sys
cur = os.path.dirname (__file__)
pathtest = os.path.join (cur, 'tests')
sys.path.append (pathtest)
然后调用:
python prep.py tests/testfoo.py
成功了
最佳答案
试试这个:
import sys
sys.path.append('your/path')
import testfoo
您可能需要使 ./tests
成为绝对路径...
关于用于导入模块的 Python 查找文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270359/