我无法弄清楚如何使用绝对导入从Python 3中的兄弟目录导入模块。
</li>
。echo "<li><a href=\"/~ftp/files/{$file}\">{$file}</a></li>";
和sys.path
将目录转换为pip可安装包。对于选项1.我想出了如何通过修改__init__.py
从兄弟目录导入模块,但这种方法对我来说似乎有些困难。另外,我读过它不是首选。为什么?修改setup.py
是否存在固有的错误或危险?
对于选项2.我需要做什么才能使我的包pip可以安装?我已经创建了我的sys.path
文件,但似乎我需要创建和配置sys.path
脚本来准备我的软件包以进行分发?我还处于开发模式,这真的是最好的/ pythonic方法吗?如果是,那么在创建__init__.py
之后,我只需在我的终端中输入setup.py
吗?
编辑:我现在正试图用绝对导入来解决这个问题,因为python 3支持相对导入。
答案 0 :(得分:1)
据我所知,Python 3不支持相对导入
确实如此。
要从myproject/foo/__init__.py
导入myproject/bar/baz.py
,您可以使用:
from .. import foo
或者如果您想在foo
中导入对象/模块:
from ..foo import object
这需要myproject
成为一个包,因此myproject/__init__.py
必须存在。