2016-11-03 18 views
0

py2exeでプログラムをexeファイルにコンパイルしようとしました。py2exe&win32 OLEObjectエラー

File "win32com\client\__init__.pyc", line 170, in __getattr__ 
AttributeError: ppPasteOLEObject`. 

グーグルが本当に役立っていない:私はExcelからグラフをコピーして、(Shapes.PasteSpecial(ppPasteOLEObject)を使用してPowerPointにそれらを埋め込むことwin32comを使用しています残念ながら、私は常に、このエラーが発生します。私はPythonでそれを実行すると、スクリプトは完全に動作するので、問題はwin32comと知っています。 typelibを含めるためにmakepy.pyを使用しても助けにはなりませんでしたが、おそらく私のsetup.pyは間違っています。ここにあります:

import sys 
from distutils.core import setup 
import py2exe 
from glob import glob 
from os.path import normpath 
import matplotlib 

sys.setrecursionlimit(5000) 
data_files=[("Microsoft.VC90.CRT",glob(normpath(
    r'C:/Program Files/Microsoft Visual Studio 9.0/VC/redist/x86/Microsoft.VC90.CRT/*.*'))), 
    ("images",glob(normpath("images/*.PNG"))), 
    ("ppttemplate",glob(normpath("ppttemplate/*.pptx")), 
    (".",normpath("C:/windows/system32/ole32.dll")), 
    (".",normpath("C:/Anaconda2/envs/py27/Library/bin/MSVCP90.dll"))) 
    ] 
data_files.extend(matplotlib.get_py2exe_datafiles()) 

setup(
    data_files=data_files, 
    console=['Main.py'], 
    options={"py2exe":{"includes":["lxml.etree","lxml._elementpath","gzip", 
         "sip","PyQt4.QtGui","PyQt4.QtCore","matplotlib"], 
         "excludes":["Tkinter"], 
         "typelibs":[('{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}', 0, 2, 8), 
            ('{00020430-0000-0000-C000-000000000046}', 0, 2, 0)] 
            } 
            } 
            ) 

ご協力いただきありがとうございます!

+0

私はPy2exeを使っていましたが、何度もエラーや問題が発生した後、PyInstallerを使い始めました。それが問題を解決するかどうか確認してください。もしそれが修正されれば、設定されています。そうでなければ、実行方法やパッケージ化方法(IE、Pythonは1つのディレクトリで実行されます。 –

答えて

0

ありがとうございました! 1つは、関連するdllをinludeし、skip_archive=Trueを設定する必要があります...(私はpy2exeが不平を言っていたすべてを含んでいました)。追加することにより

sys.path.append("C:\\Program Files\\Microsoft VisualStudio9.0\\VC\\redist\\x86\\Microsoft.VC90.CRT") 
sys.path.append("C:\\windows\\system32") 

data_filesライン前と追加し、それが働いたsystem32py2exe:内部skip_archive=Truedata_filesにし、追加のすべて! うまくいけば、それは別のコンピュータでも機能します。

私が使ったガイドは[py2exe](http://www.py2exe.org/index.cgi/IncludingTypelibs)のウェブサイトにありました!