当前位置:首页 > 操作系统 > MacOs

python – 将.py编译成Ubuntu上的windows和mac可执行文件

我已经尝试了几个小时来弄清楚如何通过pyinstaller的文档来做到这一点,但我没有运气.

我有一个单独的.py文件,我需要将它制作成Windows 7中的.exe文件可执行文件,以及OS X Lion中的.app(或者任何可用的)可执行文件.问题是我什么时候使用

<code>python pyinstaller.py my_code.py
</code>

它编译成Linux可执行文件.

解决方法:

Pyinstaller不为跨平台目标构建可执行文件,仅针对Pyinstaller“本机”运行的平台.但是,WINE允许在Linux下运行本机Windows Pyinstaller,因此它可以用于将仅在Linux上开发的Python脚本构建为仅使用单个Linux主机的本机Windows .exe可执行文件 – 无需单独的Windows主机.这些说明不针对Mac.

>我在64位奔腾型上使用Ubuntu 15.10.

<code>$uname -op
x86_64 GNU/Linux
$grep DISTRIB_DESCRIPTION /etc/lsb-release  
DISTRIB_DESCRIPTION="Ubuntu 15.10"
</code>

>确保已安装Python.

<code>$apt-get install python2.7
[installed OK]
$python --version
Python 2.7.10
</code>

>(升级和)使用Python包管理器来安装和
可能在Linux上升级Pyinstaller.没有超级用户的运行点
特权可能会失败.

<code>$sudo -H pip install --upgrade pip
[upgraded OK]
$sudo -H pip install PyInstaller
[installed OK]
$sudo -H pip install --upgrade pyinstaller
[installed OK]
$pyinstaller --version
3.0
</code>

>您可以安装Python / Pyinstaller,安装/配置WINE并编写
任何顺序的Python代码(虽然运行代码需要Python
安装).使用Python包管理器安装Python
包含在Python项目中的包.

<code>$pip install package1 [package2, ...]
[packages installed OK]
</code>

>测试打包针对Linux的可执行文件.

<code>$cd python-project
$pyinstaller --onefile python-project.py
[built OK]
$dist/python-project
[ran OK]
</code>

如果它没有构建或运行正常,请尝试将其构建为–onedir,the
Pyinstaller默认,不包括下载文件
单可执行文件这不应该建立/运行任何不同于
onefile版本,但它可以更容易调试onedir
然后应该建立OK作为onefile.
>确保已安装WINE并将其配置为使用您选择的
目标Windows版本(例如Windows 7):

<code>$wine --version
wine-1.7.50
$winecfg
[GUI: Applications tab > Windows Version: Windows 7]
</code>

>使用WINE安装Windows Python,pywin32(Windows GUI
扩展);匹配他们的版本.你应该去每个人
安装程序的下载页面,适用于正确的版本和镜像
比这些当前的直接下载链接.请注意运行WINE
将大量WINE错误通知转储到控制台;这些是
几乎在这个程序中都可以忽略不计.

<code>$mkdir -p /opt/windows $pushd /opt/windows
$wget https://www.python.org/ftp/python/2.7.10/python-2.7.10.amd64.msi
$wget http://iweb.dl.sourceforge.net/project/pywin32/pywin32/Build%20219/pywin32-219.win-amd64-py2.7.exe
$wine msiexec -i python-2.7.10.amd64.msi $wine msiexec -i pywin32-219.win-amd64-py2.7.exe
$popd
</code>

我遇到了Python 2.7.10 MSI向导无法“下一步”的问题
选择安装目录后,我在那里取消了
再次运行它添加了禁止GUI的-qn选项.它
抱怨了一点,但它完成了安装.如果你需要
默认情况下,在Linux文件系统中查找Windows Python
安装在Linux用户的默认WINE“C:”目录中
主目录,即. ?/ .wine / drive_c / Python27.

<code>$wine C:/Python27/python --version Python 2.7.10
$find ~/.wine/drive_c -name python.exe ~/.wine/drive_c/Python27/python.exe
</code>

>使用WINE Python / pip升级Windows pip并安装Pyinstaller.

<code>$wine C:/Python27/Scripts/pip.exe install --upgrade pip
[upgraded OK]
$wine C:/Python27/Scripts/pip.exe --version
pip 7.1.2 from C:Python27libsite-packages (python 2.7)
$wine C:/Python27/Scripts/pip.exe install pyinstaller
[installed OK]
$wine c:/Python27/python.exe C:/Python27/Scripts/pyinstaller-script.py --version
3.0
</code>

>使用Windows pip安装项目的下垂包

<code>$wine C:/Python27/Scripts/pip.exe install xlwt
[installed OK]
</code>

>现在配置了Windows(WINE)Python环境
 等效于您的Linux本机环境.运行Windows
 WINE下的Pyinstaller生成本机Windows .exe可执行文件.
 使用Windows Pyinstaller的Windows Python脚本版本
 与您测试的OK Linux Pyinstaller程序保持一致,
 对你的Linux文件系统中的python项目(它没有
 需要复制到WINE Windows文件系统).保持
 Windows build和dist目录与测试的OK分开
 Linux可以帮助调试打包程序.

<code> $wine c:/Python27/python.exe C:/Python27/Scripts/pyinstaller-script.py --onefile --workpath=./win-wrk --distpath=/opt/windows python-project.py
 [packaged OK]
 $ls -F /opt/windows/python-project.exe
 python-project.exe*
 $wine /opt/windows/python-project.exe
 [Windows app runs OK]
</code>

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐