加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows 10上使用Nuitka将Python 3.6脚本编译为独立的exe

发布时间:2020-12-14 01:57:43 所属栏目:Windows 来源:网络整理
导读:注意: 在将此问题标记为重复之前,请验证另一个问题是否回答了此设置的主题: 操作系统:Windows 10,64位 Python版本:3.6或更高版本 Python编译器:Nuitka,开发版本0.5.30rc5 MSVC编译器:Visual Studio 2017社区,vcvars64.bat 1.我如何构建我的exe 我将首
注意:
在将此问题标记为重复之前,请验证另一个问题是否回答了此设置的主题:

>操作系统:Windows 10,64位
> Python版本:3.6或更高版本
> Python编译器:Nuitka,开发版本0.5.30rc5
> MSVC编译器:Visual Studio 2017社区,vcvars64.bat

1.我如何构建我的exe

我将首先解释如何构建可执行文件.假设我有一个包含我想构建的简单python脚本的文件夹:

enter image description here

buildscript.py看起来像这样:

#####################################################
#               NUITKA BUILD SCRIPT                 #
#####################################################
# Author: Matic Kukovec
# Date: April 2018

import os
import platform


NUITKA = "C:/Python36/Scripts/nuitka3-script.py"  # Path where my nuitka3-script.py is
CWD = os.getcwd().replace("","/")
MSVC = "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvars64.bat"
PYTHON_VERSION = "3.6"
PYTHON_EXE_PATH= "C:/Python36/python.exe"
NUMBER_OF_CORES_FOR_COMPILATION = 1 # 1 is the safest choice,but you can try more

# Generate command
command = '"{}" amd64 &'.format(MSVC)
command += "{} ".format(PYTHON_EXE_PATH)
command += "{} ".format(NUITKA)
command += "--python-version={} ".format(PYTHON_VERSION)
command += "--output-dir={}/output ".format(CWD)
command += "--verbose "
command += "--jobs={} ".format(NUMBER_OF_CORES_FOR_COMPILATION)
command += "--show-scons "
# command += "--windows-disable-console "
# command += "--icon={}/myicon.ico ".format(CWD)
command += "--standalone "
# command += "--run "
command += "{}/cubeimporter.py ".format(CWD)
os.system(command)

print("END")

2.构建结果

构建完成后,文件夹看起来像这样(见下图).如您所见,可执行文件旁边有许多其他文件.我可以看到.dll和.pyd文件.

enter image description here

3.期望的结果

我希望我只能构建一个独立的可执行文件.不需要DLL或其他文件.当我将可执行文件放在拇指驱动器上并将其粘贴到另一台计算机(运行Windows 10,64位)时,它应该可以工作.即使该计算机上没有安装Python.

Nuitka有可能吗?
如果不是,是否可以使用其他Python编译器?
请提供所需的所有步骤,一个接一个:-)

解决方法

比单个可执行文件更容易比Nuitka更简单. PyInstaller:
pyinstaller –onefile program.py(禁用GUI应用程序的控制台窗口添加-w选项).

要使用Nuitka创建单个可执行文件,可以从生成的文件创建SFX存档.您可以使用–standalone选项运行Nuitka,该选项会生成program_dist目录.

然后创建一个7-Zip SFX配置文件config.txt:

; @安装@ UTF-8!
GUIMode = “2”
ExecuteFile = “%% T / program_dist /的Program.exe”
; @ InstallEnd @!

然后从https://github.com/chrislake/7zsfxmm(从版本 – 7zsd_extra_171_3901.7z)获取7-Zip SFX并解压缩7zsd_All_x64.sfx文件.

然后将带有7-Zip的program_dist包装(因此该文件夹包含在存档中)到program.7z.
然后,可以使用copy / b 7zsd_All_x64.sfx config.txt program.7z single_executable.exe创建SFX.

在Unix上,如果你创建一个tar存档并将它附加到一个shell脚本中,你可以自己创建一个SFX,它提取它并解压缩它,详见https://www.linuxjournal.com/node/1005818.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读