【发布时间】:2021-04-03 17:29:43
【问题描述】:
所以这是我的问题。 我有一个关于 Python 的个人项目,我通常在 PyCharm 上运行,然后我更喜欢切换到 VSCode。但是现在,我在文件导入上遇到了我不理解的错误。我不记得有修改过导入的某些内容,我不知道这是否与 IDE 有关,或者是否是一个全球性问题。
所以基本上在我的项目文件的根目录中,我有一个“utils.py”文件,用于存储我认为需要在我的项目中经常使用的函数。在同一位置(项目根目录),有我启动的主 .py 文件。
我将 utils.py 文件的路径添加到我的 PYTHONPATH 环境变量中,当我在 Python IDLE 上的变量 sys.path 中搜索时,它确实显示了我的项目根路径。
我的 main.py 也设法正确地获得了该导入。
但是,在项目根目录中,我有一个包含 Python 子文件的文件夹,无法访问该文件。 就像,根目录有 main.py、utils.py 和 folder/subfile.py
在 main.py 和 subfile.py 上,我添加了“from utils import *”以添加可识别的 utils 导入 在 main.py 上,该行没有显示任何错误 在 subfile.py(文件夹中)上,该行出现错误“无法导入 'utils' pylint(import-error)”
TLDR:
- 我的项目根文件夹包含 utils.py、main.py、folder/subfile.py
- utils.py 在我的 PYTHONPATH 环境变量中
- utils.py 导入适用于 main.py
- utils.py 导入对子文件夹中的 subfile.py 不起作用
- (不知道是不是IDE的原因)
【问题讨论】:
-
也许您可以尝试将
utils.py制作成一个完整的模块,以便将来可以导入到subfile.py和其他模块中。不是真正的解决方案,但希望它有所帮助。 -
不是已经算是模块了吗?
-
是的,对不起,你是对的。我的意思是
utils.py本身就是一个包。 -
你的意思是把它添加到站点包上,比如我用 pip 安装的包?
-
不,不是外部包。只需创建一个名为
utils的文件夹。然后将您的utils.py文件放在新文件夹中,并创建一个空的__init__.py文件。见docs.python.org/3/reference/import.html#packages