安装mayavi命令,使用cxfreeze打包python脚本

pip install numpy

出现A new release of pip is available: 23.2.1 -> 24.2
输入:
python -m pip install --upgrade pip setuptools wheel

pip install PyQt5

pip install vtk
pip install mayavi
pip install scipy

pip install configobj

 查看当前项目的依赖包:

pip freeze > requirements.txt

这个命令会将当前环境中安装的所有 Python 包及其版本信息写入 requirements.txt 文件中。 PS:如果你想在另外一个环境安装这些依赖包可以使用这个命令

pip install -r requirements.txt

2、使用cx freeze打包

新建一个脚本,这里为:setup.py

pip install cx_Freeze
from cx_Freeze import setup, Executable

build_exe_options = {


    "packages": ["altgraph","apptools","configobj","contourpy","cx_Freeze","cx_Logging","cycler","envisage","importlib_metadata","importlib_resources","kiwisolver","lief","matplotlib","mayavi","numpy","packaging","pefile","pyface","pyparsing","PyQt5","six","traits","traitsui","typing_extensions","vtk","zipp","scipy"],
    'excludes': [],

}

setup(
    name="Test",
    version="1.0",
    description="zz.py",
    author="master",
    options={
        "build_exe": build_exe_options},
    executables=[Executable(script="zz.py", base="win32gui")])

packages:指定要包含在构建中的包列表。这些是你的脚本运行所需的依赖项。
excludes:这是一个空列表,表示没有包被排除在构建之外。

name:应用程序的名称。
version:应用程序的版本。
description:应用程序的简短描述。
author:应用程序的作者。
options:包括之前定义的构建选项。
executables:这是一个 Executable 对象的列表。每个 Executable 对象指定一个要转换为可执行文件的脚本。
script:应用程序的主脚本。
base:设置为 "win32gui",表示该应用程序是一个 Windows GUI 应用程序。

打包

python setup.py build

打开exe程序如果发生报错:
则根据报错信息,比如报错信息如下图的时候把虚拟环境下的dll复制到exe程序下的lib文件夹,然后把整个vtk.libs复制到lib文件下,即可解决

不单单只报一个错误,只需要根据错误找到缺少的文件复制过去就可以了,注意找到错误关键字,ModuleNotFundError,早不到可以用everything工具搜索。我感觉应该是VTK打包的时候会丢失文件,主要是使用了VTK依赖包的时候才会在打包出现各种问题。

posted @ 2024-09-10 10:15  WilsonH  阅读(24)  评论(0编辑  收藏  举报