[英]Importing from sibling directories (python 3)
我无法弄清楚如何使用绝对导入从Python 3的同级目录中导入模块。
sys.path
。 __init__.py
和setup.py
将目录转换为pip可安装的软件包。 对于选项1,我想出了如何通过修改sys.path
从同级目录中导入模块,但是这种方法对我来说似乎有点怪。 另外,我读到它不是首选。 为什么? 修改sys.path
有天生的错误或危险吗?
对于选项2。我到底需要做什么才能使软件包pip可安装? 我已经创建了__init__.py
文件,但似乎需要创建和配置setup.py
脚本来准备要分发的程序包? 我仍处于开发模式,这真的是最好的/ pythonic方法吗? 如果是这样,那么在创建setup.py
之后,我是否只需在终端中键入python setup.py install
?
编辑:我现在正试图使用绝对导入来弄清楚这一点,因为python 3确实支持相对导入。
据我了解,Python 3不支持相对导入
是的
要从myproject/bar/baz.py
导入myproject/foo/__init__.py
myproject/bar/baz.py
,可以使用以下命令:
from .. import foo
或者,如果要在foo
导入对象/模块,请执行以下操作:
from ..foo import object
这要求myproject
是一个包,因此myproject/__init__.py
必须存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.