当前位置: 首页 > 知识库问答 >
问题:

如何使用cx_Freeze以及第三方python包创建.exe文件?

姚晋
2023-03-14

我是python编程的新手,我想创建一个。exe文件以及第三方python包。我的要求是,如果我将项目的源代码交给任何开发人员,他/她只需运行< code>python setup.py build即可。将创建. exe文件。我在< code>setup.py文件中也提到了第三方软件包,但是我得到了错误。我提供以下代码。这个需求类似于基于java、maven应用程序,其中用户运行pom.xml来创建可执行文件。

import sys
from cx_Freeze import setup, Executable

includefiles = []
includes = []
excludes = ['Tkinter']
packages = ['configparser == 4.0.2', 'colorama == 0.4.3', 'xlsxwriter == 1.2.7']
build_exe_options = {'includes':includes,'packages':packages, 'excludes':excludes, 'include_files':includefiles}

base = None

setup(name = 'Testing',
        version = '0.1',
        author = 'DD Mishra',
        description = 'A simple application',
        install_requires = ['configparser == 4.0.2', 'colorama == 0.4.3', 'xlsxwriter == 1.2.7'],
        options = {'build_exe': build_exe_options},
        executables = [Executable('main.py', base=base)]
)

我正在使用命令python setup.py 构建。首先,我想安装所有必需的软件包,如配置解析器,彩色,xlsxwriter,之后应该创建exe。所有这些都应该自动发生,而无需使用pip命令手动安装包。

按照我上面的设置,运行命令<code>python setup。py build</code>,我得到了以下错误。

运行构建运行build_exe Traceback(最近一次调用last):
文件“setup.py”,第13行,在setup(name = 'Testing ',文件“C:\ dev software s \ python 38 \ lib \ site-packages \ CX _ Freeze \ dist . py”,第340行,在setup dist utils . core . setup(* * attrs)文件“C:\ dev software s \ python 38 \ lib \ dist utils \ core . py”,第148行,在setup dist.run_commands()文件“C:\ devsoftwareFreeze()文件“C:\ dev software s \ python 38 \ lib \ site-packages \ CX _ Freeze \ freezer . py”,第610行,在Freeze self.finder = self中。_GetModuleFinder()文件“C:\ dev softwares \ python 38 \ lib \ site-packages \ CX _ Freeze \ freezer . py”,第354行,in _GetModuleFinder查找器。IncludeModule(名称)文件“C:\ dev software \ python 38 \ lib \ site-packages \ CX _ Freeze \ finder . py”,第631行,在IncludeModule module = self中。_ImportModule(name,deferredImports,File " C:\ dev software \ python 38 \ lib \ site-packages \ CX _ Freeze \ finder . py ",第348行,in _ import module raise ImportError("没有名为%r" % name "的模块)import error:没有名为' configparser == 4的模块。

0.2'

共有1个答案

佴涵蓄
2023-03-14

我有个坏消息要告诉你。尽管setuptools和您一样工作

我的“变通办法”很傻,不是真正的变通办法,而是一种了解背后哲学的方法,但你在那里做的是在调试模式下检查,你不会相信,我发现在你的例子中

build_exe_options = {'packages':packages}

正在通过几个步骤导入:如果没有,则采用Python默认包:尝试从ACTUAL PYTHONPATH(或PATH)环境变量导入。哈哈,我看到了根本原因,还没有找到原因。

因此,每个人都踩在同一个兔子洞中,通过不指定软件包的版本来避免它,而只是它们的名称。如果未安装列出的那些依赖项,您会感到惊讶:将发生相同的失败...

我们可以清楚地看到,这个选项的意图与setuptools中的install_require不同,我们可以清楚的看到,如果没有这个选项,肯定不会“复制粘贴”依赖项,因为这就是它的作用。

 类似资料:
  • 问题内容: 我到处都在搜寻这个答案,但是找不到答案。我有一个与tkinter接口的python脚本(3.3)。我使用cx_freeze从中创建可执行文件,并获得了一个包含一些文件和文件夹的build文件夹。我双击.exe文件,但没有任何反应。我正在使用以下设置: 如果我只是打开我的代码并运行它,则该界面将完美运行。进行构建时,我没有收到任何错误消息(至少我看不到…顺便说一句,我该如何验证?)。关于

  • 本文向大家介绍Python第三方包PrettyTable安装及用法解析,包括了Python第三方包PrettyTable安装及用法解析的使用技巧和注意事项,需要的朋友参考一下 可以让我们将数据用表格的方式展示出来 安装方式 pip install PrettyTable 测试是否安装成功 使用方法与对比增加一条数据 先简单的看下如何使用以及效果 效果 增加一个字段 效果 常用的几个方法 以上就是本

  • 我正在尝试创建一个JavaFX应用程序,但是我找不到一种方法将JavaFX jar文件捆绑在Launch4J创建的EXE文件中。有办法做到这一点吗? 到目前为止,我所拥有的是一个EXE和OpenJFX14和OpenJDK14的发行版,它们位于同一个文件夹中,并具有OpenJFX文档所规定的JRE路径和VM选项。 我使用OpenJDK14.0.1和Open JavaFX14.0.2。

  • 本文向大家介绍如何安装第三方模块?以及用过哪些第三方模块?相关面试题,主要包含被问及如何安装第三方模块?以及用过哪些第三方模块?时的应答技巧和注意事项,需要的朋友参考一下   用过的第三方模块:requests,pymysql,DbUtils,SQLAlchemy等  

  • 本文向大家介绍python带参数打包exe及调用方式,包括了python带参数打包exe及调用方式的使用技巧和注意事项,需要的朋友参考一下 1.举个栗子:XX.py 平时运行python XX.py arg1 arg2 打包完成后运行XX.exe arg1 arg2 打包完成后运行后并获得print输出 2.一般打包都是使用pyinstaller -F -w xxx.py,传入参数之后没有任何提示