相关疑难解决方法(0)

使用PyInstaller捆绑数据文件(--onefile)

我正在尝试使用PyInstaller构建一个单文件EXE,它包含一个图像和一个图标.我无法为我的生活而努力--onefile.

如果我这样做--onedir,一切工作都很顺利.当我使用时--onefile,它找不到引用的附加文件(运行编译的EXE时).它找到了DLL和其他一切都很好,只是不是两个图像.

我查看了运行EXE时生成的temp-dir(\Temp\_MEI95642\例如),文件确实在那里.当我将EXE放入该临时目录时,它会找到它们.非常困惑.

这是我添加到.spec文件中的内容

a.datas += [('images/icon.ico', 'D:\\[workspace]\\App\\src\\images\\icon.ico',  'DATA'),
('images/loaderani.gif','D:\\[workspace]\\App\\src\\images\\loaderani.gif','DATA')]     
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,我也试过不把它们放在子文件夹中,没有什么区别.

编辑: 由于PyInstaller更新,标记的较新答案正确.

python pyinstaller

88
推荐指数
7
解决办法
8万
查看次数

Kivy:编译成单个可执行文件

没有在kivy论坛得到回复,所以试试这里.

当我将教程pong代码编译为一个文件可执行文件时,我仍然必须将pong.kv文件包含在同一个文件夹中才能运行.否则,启动exe时出现以下错误:


    GL: EXT_framebuffer_object is supported
    [INFO              ] [GL          ] OpenGL version 
    [INFO              ] [GL          ] OpenGL vendor 
    [INFO              ] [GL          ] OpenGL renderer 
    [INFO              ] [GL          ] OpenGL parsed version: 2, 1
    [INFO              ] [GL          ] Shading version 
    [INFO              ] [GL          ] Texture max size 
    [INFO              ] [GL          ] Texture max units 
    [INFO              ] [Window      ] auto add sdl2 input provider
    [INFO              ] [Window      ] virtual keyboard not allowed,
    single mode, not docked
     Traceback (most recent call last):
       File …

python pyinstaller kivy

9
推荐指数
1
解决办法
1万
查看次数

什么是Python中的sys._MEIPASS

什么是sys._MEIPASS.这个变量的价值是什么?它的用途是什么?我是一个看起来一个python脚本,但当我在eclipse(pydev)上运行它.它显示错误.

pyinstaller python-2.7 python-3.x

7
推荐指数
2
解决办法
1万
查看次数

使用 PyInstaller --onefile 打包 kivy 时包含 .kv/.json 文件?

我有一个非常简单的应用程序(只是一个带有标签的窗口),我正在尝试引导自己完成变成单个可执行文件的过程。这是程序目录:

brainfreeze/
   main.py # simple app
   main.kv # kv language style sheet
   config/
      settings.json # json settings panel data (F1 bound)
saving_to/
   (empty at start)
Run Code Online (Sandbox Code Playgroud)

我已经成功地使用 PyInstaller 将程序编译为可执行文件,但只使用了他们文档中描述的一个文件夹捆绑方法;我希望改用一个文件包方法。到目前为止,当我编译时,应用程序启动但它是黑屏(传统上我在main.kv无法加载时看到过这种情况)。我已经阅读了thisthisthis甚至 PyInstaller文档,但没有成功编译为单个可执行文件。这是 prog_test.spec:

# -*- mode: python -*-

from kivy.deps import sdl2
from kivy.deps import glew

block_cipher = None

a = Analysis(['..\\brainfreeze\\main.py'],
             pathex=['H:\\TestBed\\single_exe_test'],
             binaries=[],
             data=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

a.datas += [('../brainfreeze/main.kv', 'DATA'), …
Run Code Online (Sandbox Code Playgroud)

python pyinstaller python-3.x kivy kivy-language

6
推荐指数
1
解决办法
2139
查看次数

Pyinstaller没有拾取树或数据文件

我正在尝试使用pyinstaller 构建一个非常基本的python脚本:print 'hello world!'我正在尝试创建一个数据文件或二进制文件可用的数据文件目录.

我一遍又一遍地阅读文档,我尝试使用1.5,2.0和2.0版本的dev构建,我尝试使用--onefile和--onedir构建,我尝试在OS X上构建Linux,但由于某种原因,我的.spec文件中的datafile/tree语句似乎被忽略了.

以下是我尝试过的一些.spec文件变体:

coll = COLLECT(exe,
               a.binaries
               [('README','/Users/username/my_little_app/foo','DATA')],
               Tree('/Users/username/my_little_app/foo','foo'),
               Tree('/foo','foo'),
               Tree('my_little_app/foo','foo'),
               [('my_xml_file.xml','my_little_app/partner.xml','DATA')],
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               name=os.path.join('dist', 'my_little_app'))


a.datas += [('my_xml_file.xml', '/Users/username/my_little_app/my_xml_file.xml',  'DATA')]
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?

python pyinstaller

3
推荐指数
1
解决办法
1万
查看次数

使用onefile选项在Pyinstaller中添加数据文件

我正在尝试将图像添加到Pyinstaller生成的一个文件中。我读过很多这样的问题/论坛,一个一个和它仍然不工作。

我知道对于一个文件操作,Pyinstller会生成一个temp文件夹,可以通过来访问sys.MEIPASS。但是我不知道我应该在脚本的确切位置添加此内容 sys.MEIPASS

请显示以下内容:

1- 在何处以及如何 sys.MEIPASS添加?在python脚本中,还是在spec文件中?

2-使用的确切命令是什么?我试过了

pyinstaller --onefile --windowed --add-data="myImag.png;imag" myScript.py
Run Code Online (Sandbox Code Playgroud)

要么

pyinstaller --onefile --windowed myScript.py
Run Code Online (Sandbox Code Playgroud)

然后将('myImag.png','imag')添加到规格文件中,然后运行

pyinstller myScript.spec
Run Code Online (Sandbox Code Playgroud)

没有一个工作。

注意:我在Windows 7下有python 3.6

python pyinstaller python-3.x python-3.6

3
推荐指数
2
解决办法
5172
查看次数