生のpyファイルを使用すると、私のコードはうまく動作します。 winpe10上(Windowsプレインストール環境、win10の非常に薄いバージョン)が同じドロップ私は2.7に私のコードをバックポートする場合プログラムはpy2exeを超えて動作しません
File "test.py", line 1, in <module>
import wmi
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
File "C:\Python34\lib\site-packages\zipextimporter.py", line 86, in load_module
return zipimport.zipimporter.load_module(self, fullname)
File "C:\Python34\lib\wmi.py", line 88, in <module>
from win32com.client import GetObject, Dispatch
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
File "C:\Python34\lib\site-packages\zipextimporter.py", line 86, in load_module
return zipimport.zipimporter.load_module(self, fullname)
File "C:\Python34\lib\site-packages\win32com\__init__.py", line 6, in <module>
import pythoncom
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
File "C:\Python34\lib\site-packages\zipextimporter.py", line 86, in load_module
return zipimport.zipimporter.load_module(self, fullname)
File "C:\Python34\lib\site-packages\pythoncom.py", line 3, in <module>
pywintypes.__import_pywin32_system_module__("pythoncom", globals())
AttributeError: 'module' object has no attribute '__import_pywin32_system_module__'
、これはよく働いただろうが、上:しかし、私はpy2exeでコンパイルしたとき、それははAttributeErrorをドロップしますエラー。 winpe 5(これはwin8.1の薄いバージョン)でも動作します。
私のコード例:
import wmi
def getWmiData(wmiProperty, wmiClass, wmiNamespace='cimv2'):
"""Return array of strings."""
wmiValues = []
wmiCursore = wmi.GetObject('winmgmts:\\root\\' + wmiNamespace)
wmiQuery = 'SELECT ' + wmiProperty + ' FROM ' + wmiClass
for item in wmiCursore.ExecQuery(wmiQuery):
wmiValues.append(str(item.__getattr__(wmiProperty)))
return wmiValues
print(getWmiData('SystemSKU', 'MS_systeminformation', 'wmi')[0])
基本py2exeの設定:
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
options = {'py2exe': {'compressed': True},},
console = ['test.py'],
)
しようとしましたバージョン:
- のpython 2.7.11、2.7.12、3.4.4
- py2xe: 0.6.9,0.9.2.2
- pywin32:219,220 の
- WMI:1.4.9
概要:どのように私は正しい道にpy2exeでWMIモジュールを使用することができますか?
あなたは 'のpython-2.7を試してみました.11.amd64.msi' + 'py2exe-0.6.9.win64-py2.7.amd64.exe' +' pywin32-219.win-amd64-py2.7.exe'? –
@barakmanosもちろん!私は建築に注意を払った! –