首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python3脚本构建用于Windows的.exe

从python3脚本构建用于Windows的.exe
EN

Stack Overflow用户
提问于 2017-08-17 12:18:36
回答 1查看 2.1K关注 0票数 3

我希望为python 3脚本构建一个可执行文件,该脚本:

  • 导入pyqtgraph (使用pyqt5)
  • 进口西亚诺和pymc3
  • 还进口numpy,sys,sys,os
  • 打开一个用qt设计器制作并存储在“.ui”文件中的简单GUI
  • 将在带有Windows 7+的计算机上分发

我在几个小时内尝试了几个工具(py2exe、pyinstaller、pynsist、cx_Freeze),但每次都失败了。我的“不那么糟糕”的结果是没有theano部件的pyinstaller (见下文)(所以没有脚本的一部分)。有人能帮我吗?

我有3个文件:2个'.py‘文件(一个带有主文件,另一个文件有大量定义)和一个'.ui’描述图形用户界面。该脚本进行一些统计分析,然后绘制一些曲线。

下面是我使用python3.5和cx_Freeze失败的一个例子(我认为这是我经历过的最先进的尝试,但我并不局限于这些工具):我将我的3个文件放在windows机器上的一个目录中,在这个目录中,所有东西都是痛苦地安装的(使用anaconda)。我添加了一个文件“setup.py”,用于cx_Freeze的文件是:

代码语言:javascript
复制
from cx_Freeze import setup, Executable
import os

os.environ['TCL_LIBRARY'] = r'C:\Program Files\Python 3.5\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files\Python 3.5\tcl\tk8.6'
os.environ['PYQTGRAPH_QT_LIB'] = 'PyQt5'

setup(
    name = ‘concentrationprofiles',
    version = '0.1',
    description = 'simple tool to simulate concentration profiles. preliminary',
    author = 'SPH',
    options = dict(
        build_exe = dict(
            packages = ['os','sys','numpy','theano','pymc3','pyqtgraph'],#omitting ‘scipy’ ! for some reason when I put ’scipy’ in this list the building fails, but it works without… probably the ‘import scipy’ inside the code is properly interpreted
            includes = ['numpy.core._methods','numpy.lib.format',
                        'pyqtgraph.debug','pyqtgraph.functions',
                        'pyqtgraph.ThreadsafeTimer','cp_util_jul17'],
            include_files = ['GUI_cprofiles_jul17.ui']
        )),
    executables = [Executable(
        script='cprofiles_jul17.py',
        base='Win32GUI',
        targetName=‘concentprofiles.exe'
        )]
    )

然后,使用这4个文件在anaconda提示符(相当于我所知的命令提示符)中执行命令行‘python’。经过大量的情节和几个小时的战斗,大楼看起来很好(没有错误信息的100行,直到结束),它创建了一个包含所有需要+ .exe的子目录的“build”目录。但是当我尝试运行这个.exe时,我什么也得不到:没有错误消息,没有控制台或窗口打开,没有快速打开关闭,也找不到日志…。只是什么都没有

我试图将‘base’选项从‘Win32GUI’更改为base=‘Console’和base=None。在这些情况下,我想有一个快速的控制台打开关闭,我无法阅读,因为我找不到日志。

以下是其他尝试中的其他几个坏结果:

  • py2exe:结果与我通常的python3.6不兼容,所以我将其降级为3.5。但是即使在3.5中,经过几行之后,它仍然僵住了:再次没有错误消息,没有控制台或窗口打开,没有快速打开-关闭,我找不到一个日志…。只是什么都没有。甚至不是一个“构建”目录。还有一次,我也尝试使用python3.4,但是我在论坛上尝试安装一个丢失的‘msvcr100.dll’时出错了。当我最终获得修改系统目录的权限时,指令‘regsvr32’失败了(这不是只有32位吗?)但是没有‘regsvr64 64’…)。我最终放弃了
  • pyinstaller:参见更新
  • 品司手的原则是你没有一个可执行文件,而只是一个安装程序。为什么不呢?只要我能分发代码,我就不需要.exe。不幸的是,在构建安装程序(没有错误)并安装它(同样没有可见错误)之后,程序什么也没有给出,就像在cx_Freeze情况下一样。

如果您需要/需要,我可以添加到脚本文件的链接。

2017年8月18日上午9时20分更新

按照这个建议,我打开了一个关于pyinstaller的新帖子:build a .exe for Windows from a python 3 script importing theano with pyinstaller

我邀请你回答那里的pyinstaller的问题。如果用py2exe或cx_freeze解决了我的问题,这个问题将被标记为已回答。

九月二日下午二时更新:

在经历了很多次之后,我最终成功地用pyinstaller构建了一个.exe。

不幸的是,我没有处理‘theano’模块(在我的情况下,‘pymc3’模块是必需的),我不得不修改.py文件并放弃部分应用程序。有人能帮我用‘theano’模块为windows 7+构建一个.exe吗?

EN

回答 1

Stack Overflow用户

发布于 2020-01-23 19:46:24

若要创建Python程序的可执行文件,请在CMD.First中运行以下命令,您需要安装pyinstaller,并使用以下命令:

代码语言:javascript
复制
pip install pyinstaller

然后执行以下操作来创建Python程序的一个可执行文件,首先,转到您的程序路径(使用cd),其中包含Python (.py)文件,然后:

代码语言:javascript
复制
pyinstaller -w -F YourPyFile
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45734926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档