Python导入错误:没有名为wmi的模块

5 投票
2 回答
26459 浏览
提问于 2025-04-18 04:48

我按照这里的说明下载了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

撰写回答