鉴于:
– Ubuntu
– py2exe和pyinstaller – Python脚本与setup.py(或其他)
from distutils.core import setup import py2exe import os setup( version = "1.0", description = 'foo', url = "", name = "foo", console=[{ "script":"main.py", "dest_base":"foo", }], zipfile = "shared.dll", options = {"py2exe":{ 'bundle_files': 1, 'optimize': 2, "dll_excludes": ['MSVCP90.dll', 'msvcr71.dll', "IPHLPAPI.DLL", "NSI.dll", "WINNSI.DLL", "WTSAPI32.dll"], "includes": ["utils"] }} )
需要:
– 一个.exe文件,也许一些.dll(我真的不知道)
步骤我做了什么:
– 安装pip3和python 3.4( https://askubuntu.com/questions/524399/issues-with-py2exe )
– 为Ubuntu安装py2exe“pip3安装py2exe”
– 运行“python3.4 setup.py py2exe”并得到以下回溯:
Traceback (most recent call last): File "setup.py", line 2, in <module> import py2exe File "/usr/local/lib/python3.4/dist-packages/py2exe/__init__.py", line 9, in <module> patch_distutils() File "/usr/local/lib/python3.4/dist-packages/py2exe/patch_distutils.py", line 68, in patch_distutils from . import distutils_buildexe File "/usr/local/lib/python3.4/dist-packages/py2exe/distutils_buildexe.py", line 91, in <module> from . import runtime File "/usr/local/lib/python3.4/dist-packages/py2exe/runtime.py", line 3, in <module> from .dllfinder import Scanner, pydll File "/usr/local/lib/python3.4/dist-packages/py2exe/dllfinder.py", line 5, in <module> from . import _wapi File "/usr/local/lib/python3.4/dist-packages/py2exe/_wapi.py", line 4, in <module> _kernel32 = WinDLL("kernel32") NameError: name 'WinDLL' is not defined
– 为Ubuntu安装pyinstaller( https://github.com/pyinstaller/pyinstaller/wiki )
– 运行“pyinstaller setup.py”(与“pyinstaller -w setup.py”相同),并在dist文件夹中获得许多扩展名为.so的文件和一个没有扩展名的“setup”文件
我究竟做错了什么?
我怎样才能得到Ubuntu下的.exe文件?
可能吗?
PS:我读过Python可执行文件:py2exe或PyInstaller? 由我没有find答案。
一般来说,你不能在Ubuntu或Linux上使用py2exe。 你也不能在Mac上使用它。 这是一个只有Windows的工具! 您必须在Windows中使用它,无论是在Windows虚拟机还是在实际的Windows计算机上。
至于PyInstaller,请阅读文档:
我可以使用PyInstaller作为交叉编译器吗?
我可以在Linux下运行时打包Windows二进制文件吗?
不,这不被支持。 请为此使用Wine,PyInstaller在Wine中运行良好。 你也可能想看看邮件列表中的这个线程。 在1.4版本中,我们已经建立了一些支持,但是它只显示了一半。 这将需要在另一个分区上的一些Windows系统,只能用于纯Python程序。 只要你需要一个像样的GUI(gtk,qt,wx),你就需要安装Windows库。 所以只要使用Wine就容易多了。 – 来源