pyinstaller:使用matplotlib构建python exe

时间:2015-11-11 16:10:20

标签: python matplotlib pyinstaller

我一直在尝试复制此post的示例,使用pyinstaller生成可执行文件但没有成功。我在Linux操作系统上。

我尝试构建的exe是基于此代码(之后是test.py)

<?php
for ($i=0;$i<count($_GET['room_idi']);$i++) {
echo $_GET['room_idi'][$i].$_GET['room_price'][$i];
}
?>

要创建我运行的可执行文件

from pylab import *
from matplotlib import pyplot as plt

figure(1, figsize=(6,6))
ax = axes([0.1, 0.1, 0.8, 0.8])

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15, 30, 45, 10]
explode=(0, 0.05, 0, 0)

pie(fracs, explode=explode, labels=labels,
                autopct='%1.1f%%', startangle=90)

title('Pie Chart Example', bbox={'facecolor':'0.8', 'pad':5})

show()

我尝试使用3.0版(pip安装中的官方版本)和pyinstaller版本3.1.dev。两者都编译但是当我运行可执行文件时我得到了

pyinstaller --onefile test.py

我读到可能的错误可能与我的$ PYTHONPATH有关(见post) 但即使有一个干净的$ PYTHONPATH environement,我也有同样的错误。

此外,我不明白为什么可执行文件在/ usr /目录中查找文件时应该是独立的。

欢迎任何建议。 感谢。

PS:这是使用pyinstaller v3.0进行编译的输出。注意 为了使它工作,我必须在文件中评论'PyQt4'和'PyQt5' /us//local/lib/python2.7/dist-packages/PyInstaller/hooks/hook-PIL.py按照post的建议。

./test 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
    exec(bytecode, module.__dict__)
  File "/usr/share/pyshared/pylab.py", line 1, in <module>
    from matplotlib.pylab import *
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
    exec(bytecode, module.__dict__)
  File "/usr/share/pyshared/matplotlib/__init__.py", line 157, in <module>
    from matplotlib.compat import subprocess
ImportError: No module named compat
test returned -1

1 个答案:

答案 0 :(得分:1)

我卸载了1.5.1并将其重新安装到版本 gcc srcfile.c -o exefile 并且运行正常。这似乎是1.4.1版本中的一个错误。请参阅here