我试图在python
上分解我的程序。我已经读了很多关于import
如何工作的信息和其他答案,但仍然不能确切地理解。
我想使用我的模块Graph.Graph2D
在InteractiveGraph2D
中实现。在导入它之前,我给这个模块添加了path。但是它告诉NameError: name 'Graph2D' is not defined
。
项目路径:
~/MyData/Python/Pygame/RoadSearchAlgorithm/src
模块路径:
~/MyData/Python/Pygame/MY_MODULES/图
代码:
# ~/MyData/Python/Pygame/RoadSearchAlgorithm/src/Graph_package/InteractiveGraph2D.py
...
sys.path.append('./')
sys.path.append('/home/rayxxx/MyData/Python/MY_MODULES')
try:
from Graph.Graph2D import Graph2D, ...
...
except Exception as e:
assert (e)
class InteractiveGraph2D(Graph2D):
...
有什么问题吗?
我试着看路径,导入模块的列表。其中呈现的图形模块
您说模块路径是~/MyData/Python/Pygame/MY_MODULES/Graph
,而在python代码中您将字符串'/home/rayxxx/MyData/Python/MY_MODULES'
添加到os.path中。也许关键在于
您应该通过将setup.py
文件添加到它的目录(doc)来使Graph模块可安装。然后你可以用pip安装它,像导入任何库一样导入它。
这是一个常见的错误,当你运行python脚本时,它会查看你运行脚本的目录所以当你运行
时,有四种情况from Graph.Graph2D import Graph2D, ...
从
~/MyData/Python/Pygame/RoadSearchAlgorithm/src
Python最多可以从src中导入。
一些解决方案,通过在MY_MODULE
中添加设置,然后执行pip安装,使您的模块可安装。在该文件夹中,这里有一个如何设置的示例。也许你需要添加一个init我需要init吗?py
另一个解决方案是将MY_MODULES/
添加到python路径,如果可能的话避免这样做,但这里有一个例子添加到python路径。