1

私は実行したいいくつかのプロットを生成するスクリプトを持っているので、実行可能ファイルを生成して、CLI を扱うことができない友人がそれを使用できるようにします。ただし、問題は py2exe が などの単純なスクリプトをコンパイルすることですがprint 'hello world'、インクルードしようとするmatplotlibnumpy問題が発生します。

import sys
import numpy as np
import inspect
import itertools
from pylab import *
from matplotlib import pyplot as plt

これらは、スクリプトが必要とするすべてのモジュールであり、py2exe エラーは次のとおりです。

*** searching for required modules ***
*** parsing results ***
Traceback (most recent call last):
  File "setup.py", line 26, in <module>
    data_files=matplotlib.get_py2exe_datafiles(),)
  File "C:\Python27\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 243, in run
self._run()
  File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 299, in _run
    py_files, extensions, builtins = self.parse_mf_results(mf)
  File "C:\Python27\lib\site-packages\py2exe\build_exe.py", line 1095, in parse_
mf_results
    import Tkinter
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 38, in <module>
    import FixTk
  File "C:\Python27\lib\lib-tk\FixTk.py", line 65, in <module>
    import _tkinter
ImportError: DLL load failed: %1 is not a valid Win32 application.

次のように定義されpython setup.py py2exeたファイルで呼び出した後に生成されました。setup.py

from distutils.core import setup
import py2exe
import sys
from glob import glob
data_files = [("Microsoft.VC90.CRT", glob(r'C:\Python27\Microsoft.VC90.CRT\*.*'))]
sys.path.append("C:\\Python27\\Microsoft.VC90.CRT")
setup(
    data_files=data_files,
    console = ['sequence-entropy.py']
  )

にリストされているディレクトリに VC redist を配置しましたsetup.py。スクリプトが実行され、Windows マシン (スクリプトが記述されたシステムだけでなく) で CLI によって実行されると、プロットが生成されます。VC のものを含めましたが、何が起こっているのかわかりません。

4

1 に答える 1

0

ここと同じ問題を抱えていると思います。Py2exe (Python) で実行可能ファイルを作成するときの Matplotlib のエラー

ここで、他の質問の回答を繰り返します。

mpl-data フォルダーもコピーする必要があります。この公式 wiki サイトを確認してください http://www.py2exe.org/index.cgi/MatPlotLib

import matplotlib
...
setup(
    ...
    data_files=matplotlib.get_py2exe_datafiles(),
)

py2exe の setup.py にこのようなものが必要になります。それが役に立てば幸い。

于 2014-03-25T16:26:01.043 に答える