我确实意识到这是一个笨拙的问题,但我已经尝试了一个小时,但我做不对。
因此,我有一个 Python 脚本,我想对其进行一些修改并作为 Python 初学者使用。然而,在脚本的最开始,有这样的内容:
from priodict import priority_dict
现在,我有一个脚本附带的名为 priodict.py
的文件。但是我如何让它对脚本可用,以便它可以像那样被包含在内呢?
Python 手册有一页又一页介绍安装模块,但它们似乎都指的是要放在某些目录中的“包”等。当我只有 .py 文件时我该怎么办?
我知道对此可能有平庸的一句话回应,但我感到很沮丧,而且我的时间很短,所以我决定采取简单的方法并询问 Stack overflow。
似乎,如果我没有 priodict.py 文件,我会得到这个错误:
Traceback (most recent call last):
File "C:\Python27\scripts\dijksta.py", line 192, in <module>
main()
File "C:\Python27\scripts\dijksta.py", line 185, in main
D, _ = dijkstra(G, 1, v)
File "C:\Python27\scripts\dijksta.py", line 139, in dijkstra
Q = priority_dict() # est.dist. of non-final vert.
NameError: global name 'priority_dict' is not defined
如果我将文件放在与我的脚本相同的目录中,我会收到此错误:
Traceback (most recent call last):
File "C:\Python27\scripts\dijksta.py", line 2, in <module>
from priodict import priority_dict
ImportError: cannot import name priority_dict
这些是有问题的文件:
最佳答案
将文件放在同一个目录中,这样您就可以开始了。看来你已经想通了这么多。如果您只有一个 .py 文件,这就是您通常需要做的。
如果您无法从模块导入名称,通常意味着该名称不存在于该模块中。尝试:
import priodict
print dir(priodict)
是否列出了 priority_dict
?如果没有,是否有可能是您正在寻找的类似命名的属性?可能只是给您的说明拼写错误,例如不需要 _。
如果导入行失败,可能是模块代码本身有错误,必须首先更正。你会收到一条错误消息,告诉你它的大致位置。
关于python - 如何安装作为 .py 文件给出的 Python 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15188969/