2017-01-20 29 views
0

py2exe(Windows 7ではWinPython 3.4.4)を使用してスクリプトから.exeファイルを作成しようとしています。このスクリプトでは、matplotlibパッケージ(バージョン1.5.2)のさまざまなバックエンドを使用しています。私の試みのすべてがエラーとなった:matplotlibのと同じディレクトリレベルにある他のパッケージとmatplotlibを使用して相対インポートエラー/最大再帰深度がpy2exeを超えました

... name = self._resolve_name(name, package, level) File "M:\Python\WinPython-32bit-3.4.4.4Qt5b1\python-3.4.4\lib\site-packages\py2exe\mf3.py", line 213, in _resolve_name raise ValueError('attempted relative import beyond top-level package') ValueError: attempted relative import beyond top-level package

、問題はありません。私はこのトピックに関するすべての記事を読みましたが、まだ解決策を見つけることができませんでした(pyinstallerを含む)。誰か助けてくれますか?

"setup.py":

from distutils.core import setup 
import py2exe 
import matplotlib 

setup(console=['skript.py'], 
options={ 
    "py2exe":{ 
      "packages": ['matplotlib.pyplot','matplotlib.backends.backend_pdf'], # List of all the modules you want to import 
      } 
     }, 
data_files=matplotlib.get_py2exe_datafiles(),   
) 

UPDATE 私は今、matplotlibのバージョン2.0.0をインストールしました。スクリプトでパッケージをインポートします

from matplotlib import pyplot, dates 
from matplotlib.backends.backend_pdf import PdfPages 
from matplotlib.ticker import MaxNLocator 

スパイダーでスクリプトを実行するとうまくいきます。 py2exeを使用したときのエラーメッセージは次のように変更されました:

File "M:\Python\WinPython-32bit-3.4.4.4Qt5b1\python-3.4.4\lib\site-packages\py2exe\hooks.py", line 291, in getattr self.__finder.safe_import_hook(renamed, caller=self) RuntimeError: maximum recursion depth exceeded

答えて

0

私は間違った方法でpy2exeを使用しているようです。

まず、あなたがexeに変換するsunning pythonスクリプトを持っている必要があります。それはscript01.pyです。

from distutils.core import setup 
import py2exe 

setup(console=['script01.py']) 
+0

私はまったく同じものです:あなたはこのようにexeファイルするsctipy01.pyを変換するsetup.pyスクリプトを書く

はその後script01.pyにその最も単純な形式で、その後、

import matplotlib.pyplot as plt 

そしてを行いますmatplotlibを使わずに動作するものスパイダーでscript.pyを実行することもできます(matplotlib import pyplotからmatplotlib.backends.backend_pdfの からmatplotlib.ticker import MaxNLocatorから をインポートしてください)。しかし、私がpy2exeを使用すると、コンパイルは失敗します。 – kujone

関連する問題