python-3.x - 如何解决python moduleNotFoundError
问题描述
我无法理解 python 中的模块布局。这是我的目录/文件结构
Project2.1/
├── project2
│ ├── data_mining
│ │ ├── process.py
│ │ └── __init__.py
│ └── __init__.py
└── tests
├── data
│ └── data.csv
├── data_mining
│ ├── __init__.py
│ └── test_process.py
└── __init__.py
文件 test_process.py,包含以下导入
from project2.data_mining.process import ClassP
使用目录 Project2.1 中的以下命令运行文件 tests/data_mining/test_proecss.py
$ cd Project2.1
$ python3 tests/data_mining/test_process.py
产生错误
File "tests/data_mining/test_process.py", line 7, in <module>
from project2.data_mining.process import ClassP
ModuleNotFoundError: No module named 'project2'
ClassP 是 project2/data_mining/process.py 中的一个类
解决方案
由于你在tests文件夹的data_mining目录下,只能直接访问data_mining文件夹内的文件,不能输入module的路径from
,需要加上data_mining文件夹的路径project2
,这样才能准确data_mining 的路径(project2 的)
和
import sys
sys.path.append(exact path)
from process import ClassP
这将附加该文件夹的路径,并使其中的所有文件都可以访问import system
还要记住我们在导入它时不使用.py
或任何扩展,就像导入任何其他模块from random import randint
一样
:D
推荐阅读
- javascript - 尝试在网站上启用 https 时出现 ChunkLoadError
- php - Webhook 信使 FB API
- numpy - 使用 numpy 线性代数求解 colab 会话崩溃
- ios - 使用 Objective-C 框架构建 Swift 项目时出现“架构 arm64 的未定义符号”错误
- json - 如何从现有项目中获取 firebase.json?
- python - 比较元组值记录明智
- angular - 如何在过滤器更改时检测行组名称?
- c++ - 新 M1 mac 上的 coreaudio 崩溃
- oracle - 我怎样才能 GRANT EXECUTE ON
致用户 - https - 为谷歌应用引擎中部署的应用强制使用 HTTPS