在Python 2.7上,我有以下内容:
dir1/dir2/File1.py
dir1/dir3/File2.py
File2.py
想要导入File1.py
有什么非hacky,pythonic,标准方法呢?
dir1,dir2和dir3包含__init__.py
答案 0 :(得分:0)
touch dir1{,/dir2}/__init__.py
可能
touch dir1{,/dir3}/__init__.py
然后,在File2.py
:
from dir1.dir2 import File2
fram = File2.Framistan(12)
<{1>}的奖励积分:
setup.py
将所有人联系在一起。
对于任意from setuptools import setup, find_packages
setup(
...
packages=find_packages(),
...
)
任意其他包,您需要在您的环境中设置FileX.py
。但是对于惯用的方法,只需使用上面的PYTHONPATH
即可。这会将您创建的软件包代表您的搜索路径。
答案 1 :(得分:0)
使用相对导入:
from ..dir2 import File1
File1.hello()
有关详细信息,请阅读documentation
在Python程序员中似乎确实存在绝对导入的偏好;该示例由Brian Cain's answer提供。