【问题标题】:How to create .exe using py2exe(or pyinstaller) on Ubuntu如何在 Ubuntu 上使用 py2exe(或 pyinstaller)创建 .exe
【发布时间】:2015-12-08 01:09:57
【问题描述】:

鉴于:
- Ubuntu
- py2exe 和 pyinstaller - 带有 setup.py(或 else)的 Python 脚本

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 “pip3 install py2exe”设置 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 executables: py2exe or PyInstaller?,我没有找到答案。

【问题讨论】:

  • 为什么要在 Ubuntu 上创建.exe 文件?在 Windows 上做不是更好吗??
  • 我想在 Ubuntu 上创建 .exe 并拉入 Windows 机器。是的,可以在 Windows 上创建它,但在我的情况下不是(请不要问我为什么)
  • 如果我是你,我会使用虚拟机。如果这不是一个选项,请尝试在 wine 中安装 windows python。如果您尝试以任何其他方式这样做,您会浪费很多时间。
  • pyinstall faq 说你应该使用 wine github.com/pyinstaller/pyinstaller/wiki/FAQ

标签: python windows ubuntu py2exe pyinstaller


【解决方案1】:

您一般不能在 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 会容易得多。 - source

【讨论】:

    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多