python - 绝对导入在项目中无法正常工作
问题描述
我很困惑为什么我的绝对进口不起作用。我已经用谷歌搜索了这个,我尝试实施所有可能的解决方案但没有成功。我不想将任何内容附加到 sys.path,我正在遵循 PEP8 的确切说明,并且我想让它在没有任何黑客/快捷方式的情况下工作 - 除非黑客是唯一的方法。
每个基本教程都说要这样做,但由于某种原因它对我不起作用。我的项目结构如下,使用 Python 3.7.6
module\
-------__init__.py
-------\folder_1
----------------__init__.py
----------------file1.py
-------\folder_2
----------------__init__.py
----------------file2.py
在 module\folder_1\file1.py 我做:
from module.folder_2 import file_2
仅供参考,我通过终端“python file1.py”运行它,但出现以下错误:
ModuleNotFoundError: No module named 'module'
编辑: 我发现了问题。我正在运行'python file1.py',但是当你这样做时,它会作为脚本运行它,而实际上它是一个模块。运行文件的方式会对结果产生影响。我不是通过运行 file1.py 来测试模块,而是通过“导入模块”在某处实际使用模块,一切都很好。
解决方案
推荐阅读
- android - Ionic 4 应用程序未在 Android 9 和低于 7 的 Android 版本中运行
- excel - 为工作簿密码保护调试 VBA
- vue.js - 嵌套 Nuxt 实例
- javascript - 将椭圆曲线加密与 OpenSSL 一起用于 php 和 javascript
- c# - 如何从 PDF 中提取所有值?
- c# - 仅接收 asc 或 desc 的 sortBy 和 sortorder 的有效性如何?
- python - 在 Tkinter 文本中撤消和重做时如何保留样式信息(标签)?
- react-native - 输入文本时搜索栏未触发
- c# - 具有相同 DI 容器的多个主机
- javascript - 合并两个对象数组,但将第二个数组推入对象键