无法导入python模块

时间:2013-12-31 21:08:58

标签: python python-2.7 import module

我正在进行一项练习,我需要导入一个名为ex25的python模块。但是,我收到以下错误:

    Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import ex25
ImportError: No module named ex25

我已经为系统路径变量添加了所有可能的路径,所以我不确定为什么它不会让我import

1 个答案:

答案 0 :(得分:1)

唯一的问题是,尽管您的问题和您的第一条评论说明了,但您没有将包含ex25.py的路径添加到您的系统路径。

事实证明,一旦你实际做了你声称的事情,一切都运转良好。

对于将来遇到类似问题的任何人,只需将其添加到import

上方即可
import sys
print(sys.path)

(如果括号看起来很奇怪,它们只是为Python 2.x和3.x提供相同的代码。)

现在,当你运行它时,你会看到一个路径列表。该列表中ex25.py的路径是?如果没有,那就是你的问题。如果你不知道如何解决这个问题,你可以在SO上找到具体的问题。

请注意“。” (即当前工作目录)位于sys.path。因此,从与ex25.py相同的目录运行当然会解决问题。 sys.path上的其他内容包括:

  • 您的系统范围和用户特定的(或者,如果您使用的是virtualenv,特定于env的)site-packages和dist-packages目录,以及{{3}添加到该列表中的任何内容模块。这就是您安装的Python包在所有脚本中可用的方式。
    • 请注意,如果您只是下载文件并将其放在某处,而不是按照其安装说明操作,或者使用pip,则不会安装该文件。
  • PYTHONPATH环境变量上的所有目录。
    • 请注意,这是PYTHONPATH,而不是PATH。在Windows控制面板中更改PATH(或Path)不会影响这一点,只不过将所有修道士涂成黄色会影响猴子或花栗鼠。
    • 另请注意,更改Windows控制面板中的内容通常不会影响任何当前打开的cmd.exe(“DOS提示符”)窗口,只会影响您创建的未来窗口。
  • 在调用append之前,您在脚本中明确sys.pathimport的所有目录。

确切的细节比这更复杂,但你真的不想学习它们 - 在某些时候你应该学习它们在Python 3.3及更高版本中是如何工作的,但实际上,没有人想知道它们在2.7中是如何工作的