这是我第一次真正坐下来尝试python 3,而且似乎失败得很惨。我有以下两个文件:
test.py
config.py
py中定义了一些函数和一些变量。我将其归纳为以下几点:
config.py
debug = True
test.py
import config
print (config.debug)
我还有一个__init__.py
然而,我得到以下错误:
ModuleNotFoundError: No module named 'config'
我知道py3约定使用绝对导入:
from . import config
然而,这会导致以下错误:
ImportError: cannot import name 'config'
所以我不知道该怎么做……任何帮助都非常感激。:)
您必须将项目的路径附加到PYTHONPATH,并确保使用绝对导入。
适用于UNIX (Linux, OSX,…)
export PYTHONPATH="${PYTHONPATH}:/path/to/your/project/"
对于Windows
set PYTHONPATH=%PYTHONPATH%;C:\path\to\your\project\
绝对的进口
假设我们有如下的项目结构,
└── myproject
├── mypackage
│ ├── __init__.py
│ ├── a.py
└── anotherpackage
├── __init__.py
├── b.py
├── c.py
└── mysubpackage
├── __init__.py
└── d.py
只需确保从项目的根目录开始引用每个导入。例如,
# in module a.py
import anotherpackage.mysubpackage.d
# in module b
import anotherpackage.c
import mypackage.a
有关更全面的解释,请参阅如何修复ModuleNotFoundError和ImportError这篇文章