这是我第一次尝试从不同的文件夹导入。结构如下:application │ ├── __init__.py │ ├── folder │ ├── file.py │ └── __init__.py │ └── folder2 ├── some_file.py │ └── __init__.py我想将 some_file 导入到 file.py 我尝试这样做from application.folder2 import some_file,但它不起作用:ModuleNotFoundError:没有名为“application”的模块。注意:视觉代码将文件夹识别为模块,因此我仅在运行时收到错误。我点击了这个最适合我的答案链接。这里有什么问题吗?
1 回答
胡说叔叔
TA贡献1804条经验 获得超8个赞
TLDR:将程序作为程序包的一部分运行:
$ python3 -m application.folder.file
模块的搜索路径源自主脚本等。跑步
$ python3 application/folder/file.py
意味着搜索路径在内部application/folder
——没有application
模块的地方。
由于应用程序似乎是作为一个包无论如何,使用-m
开关来运行您的文件作为包结构的一部分:
$ python3 -m application.folder.file
这将查找application
包(包括当前目录)并递归遍历到.folder
和.file
。这保证了导入路径与包布局匹配。
为了从包含该文件夹的文件夹之外的另一个文件夹中使用它application
,请安装该包或设置PYTHONPATH
为指向 的父文件夹application
。
$ export PYTHONPATH=$(PYTHONPATH):/path/to/parent_of_application $ python3 -m application.folder.file
添加回答
举报
0/150
提交
取消