Python 自有模块的 ModuleNotFoundError(外部 anaconda)
Python ModuleNotFoundError of own modules (external anaconda)
所以我遇到了臭名昭著的 ModuleNotFoundError,几个小时后我找不到解决方案。我知道我的项目在 Pycharm 中运行,但我想在 Visual Studio 代码中进行设置。
错误
(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 这也可能是一个问题。
我会留意任何建议,并会在阅读时尝试它们。
提前致谢:-)
如果您想在 Main.py 中导入代理,只需使用
import Agent
因为在同一个目录下
您首先必须将 __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
所以我遇到了臭名昭著的 ModuleNotFoundError,几个小时后我找不到解决方案。我知道我的项目在 Pycharm 中运行,但我想在 Visual Studio 代码中进行设置。
错误
(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 这也可能是一个问题。
我会留意任何建议,并会在阅读时尝试它们。 提前致谢:-)
如果您想在 Main.py 中导入代理,只需使用
import Agent
因为在同一个目录下
您首先必须将 __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