Python从相对路径导入
在Python 2.7上,我有以下内容:Python从相对路径导入,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,在Python 2.7上,我有以下内容: dir1/dir2/File1.py dir1/dir3/File2.py File2.py要导入File1.py 什么是非黑客,蟒蛇,标准的方式做这件事 dir1、dir2和dir3包含\uuuu init\uuuu.py touch dir1{,/dir2}/__init__.py 很可能 touch dir1{,/dir3}/__init__.py 然后,在File2.py中: from dir1.dir2 import File2 fra
dir1/dir2/File1.py
dir1/dir3/File2.py
File2.py
要导入File1.py
什么是非黑客,蟒蛇,标准的方式做这件事
dir1、dir2和dir3包含\uuuu init\uuuu.py
touch dir1{,/dir2}/__init__.py
很可能
touch dir1{,/dir3}/__init__.py
然后,在File2.py
中:
from dir1.dir2 import File2
fram = File2.Framistan(12)
setup.py
的奖励积分包括:
from setuptools import setup, find_packages
setup(
...
packages=find_packages(),
...
)
把他们绑在一起
要让任意FileX.py
查看其他包,您需要在您的环境中设置PYTHONPATH
。但是,要获得一种惯用的方法,只需使用上面提到的setup()
。这将代表您将创建的包放入搜索路径
很可能
touch dir1{,/dir3}/__init__.py
然后,在File2.py
中:
from dir1.dir2 import File2
fram = File2.Framistan(12)
setup.py
的奖励积分包括:
from setuptools import setup, find_packages
setup(
...
packages=find_packages(),
...
)
把他们绑在一起
要让任意FileX.py
查看其他包,您需要在您的环境中设置PYTHONPATH
。但是,要获得一种惯用的方法,只需使用上面提到的setup()
。这将代表您将创建的包放入搜索路径。使用相对导入:
from ..dir2 import File1
File1.hello()
有关更多信息,请阅读
Python程序员似乎确实偏爱绝对导入;该示例由具有相对导入的。给出:
from ..dir2 import File1
File1.hello()
有关更多信息,请阅读
Python程序员似乎确实偏爱绝对导入;例如,是
dir1
、dir2
还是dir3
模块?非黑客是将dir1
和dir1.dir2
放入包中。或者,将dir1/dir2
添加到PYTHONPATH
sys.path.insert(0,'dir1/dir2'))
仍在寻找有效的答案。是dir1
、dir2
还是dir3
模块?非黑客是将dir1
和dir1.dir2
放入包中。或者,将dir1/dir2
添加到PYTHONPATH
sys.path.insert(0,'dir1/dir2'))
仍在寻找有效的答案。Brian,我不明白setup.py
与相对导入的问题有什么关系。dir3$python File2.py回溯(最后一次调用):文件“File2.py”,第1行,from dir1.dir2 import File1 importorror:没有名为dir1.dir2Brian的模块,我不明白setup.py
与相对导入有关的问题有什么关系。dir3$python File2.py回溯(上次调用):文件“File2.py”,第1行,from dir1.dir2 import File1 ImportError:没有名为dir1.dir2的模块