我正在进行一项练习,我需要导入一个名为ex25
的python模块。但是,我收到以下错误:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import ex25
ImportError: No module named ex25
我已经为系统路径变量添加了所有可能的路径,所以我不确定为什么它不会让我import
。
答案 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
)不会影响这一点,只不过将所有修道士涂成黄色会影响猴子或花栗鼠。append
之前,您在脚本中明确sys.path
到import
的所有目录。确切的细节比这更复杂,但你真的不想学习它们 - 在某些时候你应该学习它们在Python 3.3及更高版本中是如何工作的,但实际上,没有人想知道它们在2.7中是如何工作的