我有一个脚本生成一些我想要运行的图表生成可执行文件,因此一些无法处理CLI的朋友可以使用它。但问题是py2exe会编译简单的脚本,例如print 'hello world'
,但在尝试包含matplotlib
和numpy
时,我遇到了问题。
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的东西,我不确定发生了什么。
答案 0 :(得分:0)
我认为你和这里有同样的问题。 Errors with Matplotlib when making an executable with Py2exe (Python)
我将在这里重复另一个问题的答案。
您还需要复制mpl-data文件夹。查看此官方维基站点http://www.py2exe.org/index.cgi/MatPlotLib
import matplotlib
...
setup(
...
data_files=matplotlib.get_py2exe_datafiles(),
)
你的setup.py中需要py2exe这样的东西。 希望它有所帮助。