我正在尝试将一个python文件导入另一个。我有以下目录结构-
/a/program.py
/b/python_package/test.py
/b/python_package/__init__.py
程序。 py-
import sys
sys.path.append('/b/python_package')
import test
也尝试过
from python_package import test
Test.py-
print('imported package')
我没有名为测试错误的模块。
ImportError: No module named test in <script> at line number 5
Traceback (most recent call last):
File "<script>", line 7, in <module>
ImportError: No module named test
None
我在做什么错了?
答案 0 :(得分:0)
__init__.py
在python 2中将目录签名为python软件包,在python 3中则不需要。
您应该签出this post。
a,b是否完全不同? 你可以有这样的东西:
root/
program.py
package/
b.py
然后您可以将b模块导入程序中,例如:
from package import b
答案 1 :(得分:0)
您必须进行绝对导入,并且sys.insert方法有效
import sys
sys.path.insert(0,'/abs_path/b/python_package')
import test
这实际上是一个肮脏的把戏,正确的方法是创建一个包并从其父级的子级导入。请注意,它不是init.py,它是___init___.py