python 语言 PYQT:pyqt5 程序打包(cx_Freeze),亲测pyinstaller 不可以打包,但是cx_Freeze可以打包

1、cx_Freeze打包使用过运行打包脚本的方式进行打包的,定义一个dabao.py文件

import sys
from cx_Freeze import setup, Executable

path_platforms = ( "D:/soft_python/anacond/pkgs/qt-5.9.5-vc14he4a7d60_0/Library/plugins/platforms/qwindows.dll", "platformsqwindows.dll" )#pyqt5大包围windows软件的dll文件
includefiles = [path_platforms]
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": ["os"],
                     "excludes": ["tkinter"],
                     "include_files": includefiles,}
                      #分别是各种第三方安装包、不需要哪些第三包、以及商贸的windows的dll文件位置

base = None
if sys.platform == "win64":
    base = "Win64GUI"
    #打包为63位运行程序
setup(name="huangjiu",
      version="1.0",
      description="application!",
      options={"build_exe": build_exe_options},
      executables=[Executable("_08_log_in.py", base=base)])
    #version是版本号,
    #description是香港描述文件
    #options建立安装文件
    #executables中的Executable(“_08_log_in.py”),是程序的第一个窗口界面

2、依据以上的本,正在使用cmd命令窗口,cd到dabao.py所在的目录下,使用

#命令1:只保存msi安装文件
python dabao.py bdist_msi
#命令2:保留所有过程文件
python dabao.py build

3、打包程序时出现的一些情况:

  (1)问题:sqlite3文件异常

          from_sqlite3 import *

          dll load failed:%1 不是有效的win32应用程序

python 语言 PYQT:pyqt5 程序打包(cx_Freeze),亲测pyinstaller 不可以打包,但是cx_Freeze可以打包_第1张图片

解决方案:

<>

https://www.sqlite.org/download.html

到官网下载,指定位数的sqlite3,解压后,放在D:\soft_python\anacond\envs\tensorflow\DLLs(依据个人配置环境)这个位置

(2)import numpy as np

      connot import name"_methods"

python 语言 PYQT:pyqt5 程序打包(cx_Freeze),亲测pyinstaller 不可以打包,但是cx_Freeze可以打包_第2张图片

解决方法:在此处加入numpy包

python 语言 PYQT:pyqt5 程序打包(cx_Freeze),亲测pyinstaller 不可以打包,但是cx_Freeze可以打包_第3张图片

(3)找不到指定的文件

python 语言 PYQT:pyqt5 程序打包(cx_Freeze),亲测pyinstaller 不可以打包,但是cx_Freeze可以打包_第4张图片

python 语言 PYQT:pyqt5 程序打包(cx_Freeze),亲测pyinstaller 不可以打包,但是cx_Freeze可以打包_第5张图片解决方案:

监所有的脚本,使用cx_Freeze打包,只能使用绝对路径,不能使用相对路径

绝对路径:D:\file\son_file

相对路径:..\son_file

你可能感兴趣的:(python 语言 PYQT:pyqt5 程序打包(cx_Freeze),亲测pyinstaller 不可以打包,但是cx_Freeze可以打包)