如何以.py文件的形式安装Python模块?

时间:2013-03-03 18:11:28

标签: python

我确实意识到这是一个愚蠢的问题,但我已经尝试了一个小时,我无法做到正确。

所以,我有一个Python脚本,我想稍微修改一下并作为Python初学者来玩。但是,在脚本的最开始,就是这样:

from priodict import priority_dict

现在,我有一个脚本附带的名为priodict.py的文件。但是如何让它可用于脚本,以便可以像这样包含它?

Python手册中有关于安装模块的页面和页面,但它们似乎都是指要放在某些目录中的“软件包”等。当我只有.py文件时该怎么办?

我知道可能有一个单一的句子回应,但我很沮丧,我的时间很短,所以我决定采取简单的方法,并要求Stack溢出它。

看来,如果我没有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

这些是有问题的文件:

https://github.com/kqdtran/ADA1/tree/master/dijkstra

1 个答案:

答案 0 :(得分:3)

将文件放在同一目录中,这样就可以开始了。好像你已经弄明白了。如果你拥有的只是.py文件,那就是你通常希望做的事情。

如果您无法从模块导入名称,通常意味着该模块中不存在该名称。尝试:

import priodict
print dir(priodict)

是否列出了priority_dict?如果没有,是否有一个类似命名的属性,可能是你正在寻找的?可能只是给你的指令拼写错误,就像_不需要。

如果导入行失败,可能是模块代码本身出现错误,必须先进行纠正。你会得到一个错误,告诉你大概它在哪里。