尽管文件存在,但 Python 模块未导入

问题描述 投票:0回答:1

我有一个

python
项目。我已经激活了
virtualenv
并安装了
requirements.txt

这是我的文件/目录结构

.
├── app
│   ├── app.py
│   ├── modules
│   │   ├── __pycache__
│   │   ├── foo.py
│   │   ├── settings.py
│   └── requirements.txt

我正在

foo.py

中进行以下导入
import settings

VSCode 不会抱怨(而在其他错误的导入尝试中它确实会抱怨)

尝试运行程序时

▶ python app/app.py 
Traceback (most recent call last):
  File "/path/to/project/app/app.py", line 1, in <module>
    from modules import foo
  File "/path/to/project/app/modules/foo.py", line 14, in <module>
    import settings
ModuleNotFoundError: No module named 'settings'
(.venv) 

我错过了什么?

python python-3.x import python-import
1个回答
1
投票

Python 模块并不是相对开箱即用地导入的。

首先,您需要在

__init__.py
目录中创建
modules
文件。 然后,在
foo.py
中,您可以使用以下命令导入“设置”:

from . import settings
# ...
© www.soinside.com 2019 - 2024. All rights reserved.