Python导入错误:没有名为wmi的模块
我按照这里的说明下载了Python的WMI库
http://timgolden.me.uk/python/wmi/index.html
当我尝试运行这段代码时
import wmi
c = wmi.WMI ()
for s in c.Win32_Service (StartMode="Auto", State="Stopped"):
if raw_input ("Restart %s? " % s.Caption).upper () == "Y":
s.StartService ()
我收到了一个错误
Traceback (most recent call last):
File ".\see_wmi.py", line 1, in <module>
import wmi
ImportError: No module named wmi
编辑:
我使用的是Python 2.7.6
编辑2:
我在64位的Windows 2008 R2上运行,并且从https://pypi.python.org/pypi/WMI/下载了WMI-1.4.9.zip(md5)。我解压了内容并保存在D:\Python\Tools\Scripts里。我执行了
python setup.py.install
我把D:\Python\Tools\Scripts添加到了%PATH%中,当我执行这段代码时
import wmi
c = wmi.WMI ()
for s in c.Win32_Service (StartMode="Auto", State="Stopped"):
if raw_input ("Restart %s? " % s.Caption).upper () == "Y":
s.StartService ()
我又得到了一个错误
Traceback (most recent call last):
File ".\see_wmi.py", line 1, in <module>
import wmi
File "D:\Python\lib\site-packages\wmi.py", line 88, in <module>
from win32com.client import GetObject, Dispatch
ImportError: No module named win32com.client
编辑3:
现在我有Python 2.7.6,安装在D:\Python27
我在D盘解压了WMI-1.4.9.zip,并执行了以下命令
PS D:\WMI-1.4.9> python .\setup.py install
输出是
running install
running build
running build_py
creating build
creating build\lib
copying wmi.py -> build\lib
running build_scripts
creating build\scripts-2.7
copying wmitest.py -> build\scripts-2.7
copying wmiweb.py -> build\scripts-2.7
copying wmitest.cmd -> build\scripts-2.7
copying wmitest.master.ini -> build\scripts-2.7
running install_lib
copying build\lib\wmi.py -> D:\Python27\Lib\site-packages
byte-compiling D:\Python27\Lib\site-packages\wmi.py to wmi.pyc
running install_scripts
creating D:\Python27\Scripts
copying build\scripts-2.7\wmitest.cmd -> D:\Python27\Scripts
copying build\scripts-2.7\wmitest.master.ini -> D:\Python27\Scripts
copying build\scripts-2.7\wmitest.py -> D:\Python27\Scripts
copying build\scripts-2.7\wmiweb.py -> D:\Python27\Scripts
running install_data
warning: install_data: setup script did not provide a directory for 'readme.txt' -- installing right in 'D:\Python27'
running install_egg_info
Writing D:\Python27\Lib\site-packages\WMI-1.4.9-py2.7.egg-info
但是当我执行我最初的代码时,还是得到了同样的错误
PS D:\SymantecDLP\Protect> python .\see_wmi.py
Traceback (most recent call last):
File ".\see_wmi.py", line 1, in <module>
import wmi
File "D:\Python27\lib\site-packages\wmi.py", line 88, in <module>
from win32com.client import GetObject, Dispatch
ImportError: No module named win32com.client
编辑4:
我在%PATH%中添加了以下内容
D:\Python27;D:\Python27\Lib\;D:\Python27\Lib\site-packages
2 个回答
1
我发现了一件事:
如果你在使用 Python 2,你需要用
python setup.py install
这个在 Python 2 中可以用,但在 Python 3 中就不行了。那样的话,你需要用
python3 setup.py install
5
我搞明白了。
我需要安装Windows用的Python扩展,地址在这里:http://sourceforge.net/projects/pywin32/files/
因为我在64位的服务器上使用的是Python 2.7.6,所以我安装了pywin32-218.win-amd64-py2.7.exe