稍后更新10秒
现在修正了,感谢JF和Gauden。
更新
通过将IDLE文件保存在其他工作文件所在的目录中,我找到了一个临时修复程序。(如果可以,我仍然想知道如何完全修复它。)
这不是永久修复,所以如果您想尝试帮助它在文件保存的任何地方使用,请随意。
这是python文件的开头:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import wikipedia
import pagegenerators
import sys
import re
import pywikibot
from pywikibot import *
(您可能已经注意到它是一个pywikipedia脚本,但我认为这是无关紧要的)
此文件从命令行运行良好。
但是,当我尝试使用IDLE开发脚本,或者只是使用IDLE解释器时,我收到错误:
>>> import wikipedia
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
import wikipedia
ImportError: No module named wikipedia
我真的不知道为什么它不起作用。
我也试过这个:
>>> imp.find_module("wikipedia.py","f:/ake/pa/th/")
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
imp.find_module("wikipedia.py","f:/ake/pa/th/")
ImportError: No frozen submodule named f:/ake/pa/th/.wikipedia.py
错误日志中给出的路径是wikipedia.py文件的正确路径,.
之前只有wikipedia.py
。
然后我尝试将路径添加到sys.path
,但这也不起作用:
>>> import sys
>>> sys.path.append("c/users/adam/py")
#the same error...
模块的路径:`c:\ users \ joe_bloggs \ py \ wikipedia.pyc
Python可执行文件:命令行:C:\Python27\python.exe
,IDLE:C:\Python27\pythonw.exe
PYTHONPATH 会抛出:
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
print os.environ['PYTHONPATH'].split(os.pathsep)
File "C:\Python27\lib\os.py", line 423, in __getitem__
return self.data[key.upper()]
KeyError: 'PYTHONPATH'
操作系统:Windows 7
Python版本: 2.7.2
新PATH :IDLE和命令行:
C:\Program Files\Common Files\Microsoft Shared\Windows Live
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live
C://Python27
C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin
C:\Program Files (x86)\QuickTime\QTSystem\
C:\Program Files (x86)\Windows Live\Shared
答案 0 :(得分:2)
编辑上述问题的答案相当简单,但我正在编辑此答案作为可能的故障排除检查清单以供将来参考,并作为可能需要准备问题的其他人的清单这种性质在未来。
>>> import wikipedia
>>> print wikipedia.__file__
这将为您提供编译模块的路径,这是一个线索。
>>> import sys
>>> print sys.executable
在shell和IDLE脚本中尝试此操作。如果两个结果不同,那么您使用两个Python解释器,其中只有一个具有指向wikipedia
模块的路径。
sys.path
?同时在shell和IDLE中的脚本中重复此操作。
>>> print '\n'.join( sys.path )
(您可以使用sys.path.append("d:/irectory/folder/is/in")
将该位置添加到sys.path
。这应该将该目录添加到Python查找模块的位置列表中。)
最后在shell中以及IDLE中的脚本中重复此操作。
>>> import os
>>> print '\n'.join( os.environ['PATH'].split(os.pathsep) )
再次注意两个结果(来自shell和来自IDLE)并查看两个环境中PYTHONPATH是否存在差异。
如果所有这些测试都没有结果,我会尽可能多地将这些信息添加到您的问题中,因为它可以帮助您获得具体的进一步线索。还要添加您正在使用的操作系统以及您获得的任何追溯。
答案 1 :(得分:0)
尝试在Raspberry Pi上导入新安装的库时遇到了同样的问题。我按照所有说明安装了库(Adafruit RHT Sensor),它在终端上工作正常。但是,我无法在IDLE中使用它。
原来,问题是Raspberry Pi安装了Python 2和3。我完成的安装(使用&#39; python&#39;命令)仅适用于Python 2.我必须使用&#39; python3&#39;执行另一次安装。命令安装它为Python 3.之后,我重新启动IDLE,一切正常。
上面打印sys可执行文件路径的建议有助于指出差异:
import sys
print sys.executable