从不同目录的不同脚本导入变量时出错
Error when importing variable from different script from different directory
我正在做一个项目,我在 Python 中训练神经网络并使用 GUI 显示信息。但是,我在导入模块方面一直存在问题。这是我在尝试 运行 Visualizer.Main
时遇到的错误
Traceback (most recent call last):
File "/home/user/SplineTrajectoryGenerator/Visualizer/Main.py", line 3, in <module>
from Visualizer.Field import Field
File "/home/user/SplineTrajectoryGenerator/Visualizer/Field.py", line 3, in <module>
from Visualizer.Utils import loadImage
File "/home/user/SplineTrajectoryGenerator/Visualizer/Utils.py", line 3, in <module>
from NeuralNetworks.Pose import Pose2D
File "/home/user/SplineTrajectoryGenerator/NeuralNetworks/Pose.py", line 4, in <module>
from Visualizer.Utils import constraint
ImportError: cannot import name 'constraint'
然而,奇怪的是变量存在并且可以在Visualizer文件夹中的Utils.py中找到。有人告诉我使用 _init__.py
允许将目录用作模块以从其他目录中的脚本导入方法和 类。我仍然对变量存在时为什么会发生此错误感到困惑。作为参考,所有文件的树如下所示。
.
├── NeuralNetworks
│ ├── __init__.py
│ ├──Main.py
│ └──Pose.py
├──README.md
└── Visualizer
├── Assets
│ ├── Field.png
│ └── Robot.png
├──Field.py
├── __init__.py
├──Main.py
├──Robot.py
└──Utils.py
如果您需要查看脚本,我已将整个文件夹附在下面link。任何帮助将不胜感激。
您似乎在 Visualizer.Utils
和 NeuralNetworks.Pose 之间存在循环依赖`:
from Visualizer.Utils import loadImage
File "/home/user/SplineTrajectoryGenerator/Visualizer/Utils.py", line
3, in
from NeuralNetworks.Pose import Pose2D
File "/home/user/SplineTrajectoryGenerator/NeuralNetworks/Pose.py",
line 4, in
from Visualizer.Utils import constraint
Python 不支持循环依赖 - 这实际上是一个 GoodThing(tm),因为这些是设计问题(两个模块不应相互依赖)。规范的解决方案是为两个模块都需要的对象(类、函数等)创建一个新模块(即在您的情况下为 'constraint' 创建一个不同的模块)。
我正在做一个项目,我在 Python 中训练神经网络并使用 GUI 显示信息。但是,我在导入模块方面一直存在问题。这是我在尝试 运行 Visualizer.Main
时遇到的错误Traceback (most recent call last):
File "/home/user/SplineTrajectoryGenerator/Visualizer/Main.py", line 3, in <module>
from Visualizer.Field import Field
File "/home/user/SplineTrajectoryGenerator/Visualizer/Field.py", line 3, in <module>
from Visualizer.Utils import loadImage
File "/home/user/SplineTrajectoryGenerator/Visualizer/Utils.py", line 3, in <module>
from NeuralNetworks.Pose import Pose2D
File "/home/user/SplineTrajectoryGenerator/NeuralNetworks/Pose.py", line 4, in <module>
from Visualizer.Utils import constraint
ImportError: cannot import name 'constraint'
然而,奇怪的是变量存在并且可以在Visualizer文件夹中的Utils.py中找到。有人告诉我使用 _init__.py 允许将目录用作模块以从其他目录中的脚本导入方法和 类。我仍然对变量存在时为什么会发生此错误感到困惑。作为参考,所有文件的树如下所示。
.
├── NeuralNetworks
│ ├── __init__.py
│ ├──Main.py
│ └──Pose.py
├──README.md
└── Visualizer
├── Assets
│ ├── Field.png
│ └── Robot.png
├──Field.py
├── __init__.py
├──Main.py
├──Robot.py
└──Utils.py
如果您需要查看脚本,我已将整个文件夹附在下面link。任何帮助将不胜感激。
您似乎在 Visualizer.Utils
和 NeuralNetworks.Pose 之间存在循环依赖`:
from Visualizer.Utils import loadImage
File "/home/user/SplineTrajectoryGenerator/Visualizer/Utils.py", line 3, in
from NeuralNetworks.Pose import Pose2D
File "/home/user/SplineTrajectoryGenerator/NeuralNetworks/Pose.py", line 4, in
from Visualizer.Utils import constraint
Python 不支持循环依赖 - 这实际上是一个 GoodThing(tm),因为这些是设计问题(两个模块不应相互依赖)。规范的解决方案是为两个模块都需要的对象(类、函数等)创建一个新模块(即在您的情况下为 'constraint' 创建一个不同的模块)。