首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyinstaller 3.5不会生成独立的可执行文件

Pyinstaller 3.5不会生成独立的可执行文件
EN

Stack Overflow用户
提问于 2019-08-13 01:07:57
回答 1查看 326关注 0票数 0

我试图让Pyinstaller3.5创建一个"onefile“可执行文件,但它一直在生成一个"onedir”。

我的文件都在一个目录中。有一个主程序导入了另外两个模块,这些模块又导入了第三个模块。当直接在Python 3.7.4中运行时,程序运行正常。Pyinstaller生成的"onedir“版本也可以工作。我在Surface Book 2上运行64位Windows 10专业版。

我用来生成文件的命令是:

pyinstaller --onefile --windowed --additional-hooks-dir=. qualys_admin.spec

我的程序使用wx、pubsub、xmltodict、request和pandas。附加的钩子文件是用于xlrd的,pandas需要它来读取xlsx文件。

我的等级库文件如下所示:

代码语言:javascript
复制
# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

# work-around for https://github.com/pyinstaller/pyinstaller/issues/4064
import distutils
if distutils.distutils_path.endswith('__init__.py'): 
    distutils.distutils_path = os.path.dirname(distutils.distutils_path)

addedfiles = ('qualys_admin.ini', '.')

a = Analysis(['qualys_admin.py'],
             pathex=['C:\\Users\\secops-sw\\Documents\\qualys- 
administration\\qualysadmin'],
             binaries=[],
             datas=[addedfiles],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
         cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='qualys_admin',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='qualys_admin')

我写了一个很小的"hello world“程序来降低我的程序的复杂性。我成功地生成了一个"onedir“和一个"onefile”。因此,我知道在哪里查找独立的可执行文件。

对于我的qualys_admin应用程序,该可执行文件肯定没有生成,并且我找不到任何警告来说明原因。

有谁有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-08-13 01:48:49

它不起作用,因为您的等级库文件配置为单目录模式。您需要创建带有一个文件标志的等级库文件。

代码语言:javascript
复制
pyi-makespec --onefile yourscript.py 

然后,您可以修改规格表并使用自定义规格表构建应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57465421

复制
相关文章

相似问题

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