【问题标题】:Meet import error in terminal, but PyCharm can run it在终端遇到导入错误,但 PyCharm 可以运行它
【发布时间】:2022-08-03 16:15:53
【问题描述】:

我的python项目是这样的:

- project
|
-- datasets
|
----__init__.py
|
----toy.py
|
--trainer
|
----train.py

datasets/__init__.py:

# datasets/__init__.py
from .toy import xxx

我尝试从toy.pytrain.py 中导入函数和类。 所以,在train.py,我写道:

import datasets

if __name__ == \'__main__\':
    print(datasets.__dict__)

当我在终端发出python trainer/train.py 时,会出现导入错误:

\"ModuleNotFoundError: 没有模块名为 \'datasets\'\"

但是,我可以通过单击右上角的“运行”按钮在 Pycharm 中运行train.py

谁能告诉我为什么并给出任何建议来解决它?

    标签: python python-3.9


    【解决方案1】:

    pycharm 将您的项目目录添加到 PYTHONPATH 环境变量中(您可以使用 Settings->Project Structure->Add Content Root 添加其他文件夹)。

    在 pycharm 的虚拟环境之外,您的项目未设置为任何搜索路径。 两种选择:

    1. 将项目路径附加到 PYTHONPATH 环境变量(创建新的环境变量 PYTHONPATH 或将带有“;”的路径添加到现有变量)
    2. 使用 sys.path.append: 添加以下行
        import sys
        sys.path.append(r"../project")
      

      在 train.py 中的 import datasets 之前

    【讨论】:

      猜你喜欢
      • 2017-02-11
      • 2021-09-12
      • 1970-01-01
      • 2016-06-28
      • 2020-11-11
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多