【问题标题】:Python ModuleNotFoundError of own modules (external anaconda)自己模块的Python ModuleNotFoundError(外部anaconda)
【发布时间】:2018-11-07 14:42:26
【问题描述】:

所以我遇到了臭名昭著的 ModuleNotFoundError,并且有几个小时我找不到解决方案。我知道我的项目可以在 Pycharm 中运行,但我想在 Visual Studio Code 中进行设置。

错误

(base) C:\pythonprojects\AI_Project>C:/Users/quint/Anaconda3/python.exe c:/pythonprojects/AI_Project/be/kdg/MarkovDecisionProcess/Main.py
Traceback (most recent call last):
  File "c:/pythonprojects/AI_Project/be/kdg/MarkovDecisionProcess/Main.py", line 1, in <module>
    import be.kdg.MarkovDecisionProcess.Agent as Agent
ModuleNotFoundError: No module named 'be'

我的项目结构

project
|__be
   |__kdg
      |__MarkovDecisionProcess
         |__Agent.py
         |__Main.py
         |__Percept.py  

在 main.py 中

import be.kdg.MarkovDecisionProcess.Agent as Agent
import be.kdg.MarkovDecisionProcess.Percept as Percept 
import gym as gym
import numpy as np
...

在 Agent.py 中

import gym
import numpy as np
from be.kdg.MarkovDecisionProcess.Percept import Percept

class Agent:
    def __init__(self, stateRewards, state_count, action_count):
    ...

我的环境:Python 3.6.5 ('base':conda)

python 路径

"python.pythonPath": "C:\\Users\\quint\\Anaconda3\\python.exe"

首先我在每个目录中都有 __Init__.py,但后来我在这里看到 http://python-notes.curiousefficiency.org/en/latest/python_concepts/import_traps.html 这也可能是一个问题。

我会留意任何建议,并会在阅读时尝试它们。 在此先感谢:-)

【问题讨论】:

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


    【解决方案1】:

    您首先必须将 __init__.py 添加到您的 MarkovDecisionProcess 以使其成为一个模块。然后,您必须将\path\to\project 添加到PYTHONPATH 才能导入。

    例如,在 Windows 中:

    setx PYTHONPATH /M "\path\to\project"
    

    在 Unix/macOS 中:

    PYTHONPATH=$PYTHONPATH:/path/to/project
    

    然后,你可以像这样import:from be.kdg.MarkovDecisionProcess import Agent

    或者,您可以使用importlib.util

    【讨论】:

      【解决方案2】:

      如果你想在 Main.py 中导入代理,只需使用

      import Agent
      

      因为它在同一个目录中

      【讨论】:

      • 这将被解释,但 pylint 将其识别为 VS Code 中的错误。
      猜你喜欢
      • 2021-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      相关资源
      最近更新 更多