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
私はまったく同じものです:あなたはこのようにexeファイルする
sctipy01.py
を変換するsetup.py
スクリプトを書くはその後
script01.py
にその最も単純な形式で、その後、そしてを行いますmatplotlibを使わずに動作するものスパイダーでscript.pyを実行することもできます(matplotlib import pyplotからmatplotlib.backends.backend_pdfの からmatplotlib.ticker import MaxNLocatorから をインポートしてください)。しかし、私がpy2exeを使用すると、コンパイルは失敗します。 – kujone