从另一个文件夹以Python导入包和模块

时间:2020-10-04 10:36:07

标签: python

我搜索了关于stackoverflow的现有问题,但找不到我想要的东西。首先,我是Python的新手,我来自Ruby,因此我对Python有些了解。通过学习,我正在为支付网关编写自己的python REST API客户端,我计划将其发布到PyPi。我的问题是从不同的文件夹导入模块。 假设我有这样的文件夹结构:

my_project/src/lib/directory1/module1.py
my_project/src/lib/directory2/module2.py

my_project/src/lib/directory1/module1.py中,我想导入在my_project/src/lib/directory2/module2.py中定义的函数,所以

# my_project/src/lib/directory2/module2.py
from lib.directory2 import module1

这不起作用,它说ImportError: No module named directory2。我读到在Python中,您需要将模块添加到PATH,但是我去了PyPi,并从顶部(SeleniumBase)开始选择了第一个库,以查看GitHub项目中代码的组织方式,我没有没有看到他们做任何这样的事情。您能否向我解释这是如何工作的,以及如何组织我的代码库,以便能够从不同的文件夹中将一个模块中的模块导入以构建自己的库?

我阅读了这篇文章https://docs.python.org/3/reference/import.html,并尝试了他们在5.7节中所说的内容。打包相对导入但不起作用

从理论上讲,这应该起作用

from ..subpackage2.moduleZ import eggs

但事实并非如此。我得到SystemError: Parent module '' not loaded, cannot perform relative import

1 个答案:

答案 0 :(得分:0)

仅当您要导入的模块与执行导入的脚本位于同一目录中时,导入才起作用。

否则,您必须指定路径。

赞:

import my_project/src/lib/directory1/module1.py