【问题标题】:How to solve python moduleNotFoundError如何解决python moduleNotFoundError
【发布时间】:2021-11-30 17:01:29
【问题描述】:

我无法理解 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 中的一个类

【问题讨论】:

    标签: python-3.x import python-module


    【解决方案1】:

    由于你在tests文件夹的data_mining目录下,只能直接访问data_mining文件夹内的文件,不能用from输入模块的路径,需要添加data_mining文件夹的路径project2 的,所以得到 data_mining (of project2) 的确切路径

    import sys
    sys.path.append(exact path)
    
    from process import ClassP
    

    这将附加该文件夹的路径,并使import system可以访问其中的所有文件

    还记得我们在导入时不使用.py 或任何扩展名 就像导入任何其他模块 from random import randint 一样

    :D

    【讨论】:

    • 谢谢。我在 test_process.py ``` import os import sys root_path = os.path.dirname(os.path.realpath(file))+'/../..' sys. path.append(root_path)1 ```
    猜你喜欢
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 2021-11-13
    • 2021-05-13
    • 2022-07-12
    • 1970-01-01
    • 2023-01-27
    相关资源
    最近更新 更多