繁体   English   中英

从同级目录导入(python 3)

[英]Importing from sibling directories (python 3)

我无法弄清楚如何使用绝对导入从Python 3的同级目录中导入模块。

  1. 修改sys.path
  2. 通过__init__.pysetup.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM