无法从另一个包导入模块
Unable to import module from another package
我有这样的目录结构
conf
__init__.py
settings.py
abc.conf
def.conf
src
main.py
xyz.py
src 我选择的不是打包而是普通文件夹。
我正在尝试将 settings.py 文件导入 main.py 并使用命令 python3 main.py
执行整个过程
我在 main.py 中的导入语句:import conf.settings
我遇到的错误是 No module named conf.settings
,我无法理解它。
python 是不是无法将 conf 识别为包?包是否可以包含 .py 文件以外的文件(在我的例子中是 .conf 文件)
导入时python搜索当前目录和sys.path
。由于您的 main.py
在 src
文件夹中,因此它看不到 conf
包文件夹。幸运的是,您可以在运行时更新 sys.path
。
root
conf
__init__.py
settings.py
src
main.py
因此您可以在导入 conf
模块之前从 main.py
追加 sys.path
。尝试以下操作:
# main.py
import os, sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
from conf import settings
...
另一种方法是直接更新 PYTHONPATH 并将路径添加到脚本根目录。
我有这样的目录结构
conf
__init__.py
settings.py
abc.conf
def.conf
src
main.py
xyz.py
src 我选择的不是打包而是普通文件夹。
我正在尝试将 settings.py 文件导入 main.py 并使用命令 python3 main.py
我在 main.py 中的导入语句:import conf.settings
我遇到的错误是 No module named conf.settings
,我无法理解它。
python 是不是无法将 conf 识别为包?包是否可以包含 .py 文件以外的文件(在我的例子中是 .conf 文件)
导入时python搜索当前目录和sys.path
。由于您的 main.py
在 src
文件夹中,因此它看不到 conf
包文件夹。幸运的是,您可以在运行时更新 sys.path
。
root
conf
__init__.py
settings.py
src
main.py
因此您可以在导入 conf
模块之前从 main.py
追加 sys.path
。尝试以下操作:
# main.py
import os, sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
from conf import settings
...
另一种方法是直接更新 PYTHONPATH 并将路径添加到脚本根目录。