【发布时间】:2021-09-12 06:04:21
【问题描述】:
假设我有以下文件结构:
Package/
__init__.py
A.py
B.py
在__init__.py 里面我有以下内容:
__init__.py/
import numpy as np
import pandas as pd
然后我在 A.py 脚本中发出以下命令:
A.py/
from Package import *
但是,我收到一条错误消息,指出没有定义模块名称包。
ModuleNotFoundError: No module named Package
我认为from Package import * 意味着运行__init__.py 中的所有内容。
我可以运行 A.py 内容并按预期使用从 B.py 导入的 init。(使用 from Package import *)
我正在使用 VSCode 和 Anaconda,我的操作系统是 Windows 10。
我可以每次使用以下命令将项目文件夹附加到我的 PythonPath:
sys.path.append("Path to the Package")
但我不想每次都运行这段代码。
谁能解释一下是什么问题? 这是 Python 中的一个新问题,因为我不记得过去有过此类问题吗?
【问题讨论】:
-
A.py应该在Package中(即包的一部分),然后在其中尝试从Package导入所有内容。这是行不通的,即使这样做也会导致循环导入。更不用说明星进口很糟糕。 -
好的。循环包可能是一个问题,但这里不是这种情况。但是为什么我的命令不起作用。那么如何使用我在 init.py 中导入的内容呢?这应该是一个新事物,因为这不是问题。
-
检查您的
sys.path。 Python 正在那里列出的位置搜索Package。 docs.python.org/3/library/sys.html#sys.path -
这能回答你的问题吗? Relative imports for the billionth time
标签: python visual-studio-code anaconda package