【发布时间】:2019-07-03 09:48:42
【问题描述】:
我有这样的目录结构
conf
__init__.py
settings.py
abc.conf
def.conf
src
main.py
xyz.py
src 我选择不制作包,而是制作普通文件夹。
我正在尝试在 main.py 中导入 settings.py 文件并使用命令 python3 main.py
我在 main.py 中的导入语句:import conf.settings
我得到的错误是No module named conf.settings,我无法理解它。
python 是否无法将 conf 识别为包?包可以包含 .py 文件以外的文件(在我的例子中是 .conf 文件)
【问题讨论】:
-
上面写着
from . import conf.settings SyntaxError: invalid syntaxconfig.settings上的标记。如果我稍后添加 init.py 文件会有什么不同吗? config 原本是一个文件夹,后来我觉得它更适合作为一个包。 -
这个新的导入语句显示
No module named conf,而我的 init 文件为空。我正在 src 文件夹中运行python main.py命令。 -
您是否希望 Python 进入您当前工作目录的每个文件夹 upstream(即
src,因为您正在使用python3 main.py执行程序),检查所有__init__.py并将它们添加到其导入模块解析路径?每次运行都会花费大量时间,更不用说它可能导致的所有可能的冲突/路径冲突。因此,您的选择是将 parent 文件夹添加到 Python 路径(PYTHONPATH环境变量),在运行时更改sys.path,或者,最简单和最推荐的方法 - 只需移动 @987654334 @到src。
标签: python-3.x import python-packaging