我正在学习内部软件包参考。我有一个主软件包ecommerce
,其中有两个子软件包shopping
和customer
。在购物中,我有sales.py
文件,在customer
中有contact.py
文件。
sales.py
有
from ecommerce.customer import contact
它给出错误no module name ecommerce
。但是主文件夹中有一个app.py
文件,它不是购物和客户子程序包的一部分,并且在此文件中,上面的导入工作正常。
答案 0 :(得分:1)
由于您的文件夹架构,您可能会遇到此问题。
让我们说,如您所说,您正在跑步:
from ecommerce.customer import contact
您实际上在这里告诉Python的是从名为contact.py
的子文件夹中的子子文件夹customer
导入ecommerce
(Python文件)。如果您的工作目录中没有 子文件夹ecommerce
,则该将不起作用。
现在,您可以注意到它可能在您的主文件夹中有效,因为(据我猜测)这是名为ecommerce
的子文件夹所在的位置。
如果文件位于另一个目录中,则可以在运行时将文件的路径添加到Python路径中:
import sys
sys.path.insert(1, '/ecommerce/shopping/customer')
# and then
import contact