为了账号安全,请及时绑定邮箱和手机立即绑定

使用 __init__.py 从不同文件夹导入文件在运行时不起作用

使用 __init__.py 从不同文件夹导入文件在运行时不起作用

千巷猫影 2023-12-26 15:54:13
这是我第一次尝试从不同的文件夹导入。结构如下: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


查看完整回答
反对 回复 2023-12-26
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信