- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将图像添加到 Pyinstaller 生成的一个文件中。我读过很多这样的问题/论坛 one那one但仍然无法正常工作。
我知道对于一个文件操作,PyinSTLler 会生成一个可以通过 sys.MEIPASS
访问的临时文件夹。但是我不知道我应该在我的脚本中的确切位置添加这个 sys.MEIPASS
。
请出示以下内容:
1- 在哪里以及如何 sys.MEIPASS
应该被添加?在 python 脚本中,还是在 spec 文件中?
2- 使用的确切命令是什么?我试过了
pyinstaller --onefile --windowed --add-data="myImag.png;imag" myScript.py
或
pyinstaller --onefile --windowed myScript.py
然后在spec文件中添加('myImag.png','imag')然后运行
pyinstller myScript.spec
没有一个有效。
注意:我在windows 7下有python 3.6
最佳答案
当使用 PyInstaller 打包到单个文件时,运行 .exe 会将所有内容解压到 TEMP 目录中的文件夹中,运行脚本,然后丢弃临时文件。临时文件夹的路径会随着每次运行而变化,但对其位置的引用会作为 sys._MEIPASS
添加到 sys
。
要利用这一点,当您的 Python 代码读取任何也将打包到您的 .exe 中的文件时,您需要将文件位置更改为位于 sys._MEIPASS
下。换句话说,您需要将它添加到您的 Python 代码中。
这是一个示例,当打包到单个文件时,使用您引用的链接中的代码将文件路径调整到正确的位置。
# data_files/data.txt
hello
world
# myScript.py
import sys
import os
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
def print_file(file_path):
file_path = resource_path(file_path)
with open(file_path) as fp:
for line in fp:
print(line)
if __name__ == '__main__':
print_file('data_files/data.txt')
使用以下选项运行 PyInstaller 打包文件:
pyinstaller --onefile --add-data="data_files/data.txt;data_files" myScript.py
构建myScript.exe,可以正常运行,可以打开读取打包后的数据文件。
关于python - 使用 onefile 选项在 Pyinstaller 中添加数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51060894/
我需要在 pyinstaller“onefile”可执行文件中包含一个 DLL 和一个文本文件。我可以只添加 DLL,但如果我尝试指定这两个文件,pyinstaller 会提示。我宁愿使用命令行选项(
我编写了一个 python 应用程序,它使用 pdfkit 包来打印 PDF。我正在使用 pyinstaller 在 Ubuntu 上构建此应用程序的可执行文件。 pdfkit 依赖于使用 sudo
我想弄清楚为什么 PyInstaller 一直包含 PyQt 的 Windows dll 文件,即使我的应用程序不使用 PyQt。所以,我想知道如何确定 为什么 PyInstaller 认为 PyQt
我在我的 mac osx sierra 下安装了 2 个 python 版本: python 3.5 python 2.7 我用这个命令在python3.5下安装了pyinstaller: pytho
所以,标题基本上涵盖了我的问题。我已经使用 virtualenv 创建了一个项目,例如我必须 source ./env/bin/activate 运行我的脚本。 当我尝试使用以下命令创建可执行文件时:
大约一个月前,我使用 PyInstaller 和 Inno Setup 为我的 Python 3 脚本生成了一个安装程序。我的 AVG Business Edition AntiVirus 刚刚开始提
我正在尝试使用 pyinstaller 制作可执行文件,方法如下: pyinstaller -F --add-binary="sometool.exe:."myapp.py 构建工作正常。但是,如果我
我想要卡住一个 Python 应用程序,作为其功能之一,它能够使用 PyInstaller 生成卡住的 Python 应用程序。这是一个最小的应用程序,显示了我想要实现的目标: import PyIn
运行 pyinstaller myfile.spec 下面的回溯 Traceback (most recent call last): File "/usr/local/bin/pyinstall
首先, native 运行 Fedora 13,PyInstaller 版本为 1.5.1 我在生成规范时确实使用了 --onefile 。 从 Python 解释器中运行“import atexit
我想使用以下命令安装 pyinstaller 模块: pip install pyinstaller 但我总是得到以下错误: 最佳答案 我尝试了一切,但最终我找到了解决方案。 您只需将 pip 从 1
我在 Windows 上运行 Python 3.5.3,并尝试使用 pip 安装 Pyinstaller。它似乎工作 - 没有错误或任何东西,就像 pip 一样非常简单。 我试过 import -m
我已经使用 pyinstaller 在 Windows 10 64 位上从 python 脚本创建了一个 exe。我如何设置 exe 以便它在我的另一台装有 Windows 8 32 位的机器上运行。
我使用以下命令安装了最新版本的 PyInstaller:pip install https://github.com/pyinstaller/pyinstaller/archive/develop.z
我用 python 编写程序来打开路径给出的一些可执行文件。我使用: os.startfile(路径) 启动程序。当我在 IDLE 中运行 script.py 时,它工作正常,但是当我使用 pyins
我在 Python 中构建了一个关键字搜索工具,然后使用 Pyinstaller 将其转换为 .exe 格式,因此我工作场所的人无需安装 Python 即可使用它。 我已通过电子邮件将其以 RAR 文
我遇到了一个问题。我正在使用 pyinstaller 将代码导出到 .exe。代码包括 tkinter、PIL 和 keyboard 模块。软件在我使用 Python 的 PC 上运行完美,而在没有
我正在尝试从我的 python 项目中创建一个可执行文件。我正在使用函数“make_executable”构建可执行文件。 运行添加数据的命令会引发如下错误:pyinstaller: 错误: 无法识别
我想从 .py 创建 .exe 文件。如果我运行 .py 文件,它运行良好,我没有问题。但是当我运行 pyinstaller 创建的 .exe 文件时,我无法在命令行中输入(键入)任何内容。 我已经尝
我有一个小应用程序,我正在尝试针对 Windows 机器构建它。该程序创建一个 OpenVPN 连接。如果我构建程序并运行它,它首先会打开一个控制台作为程序输出。如果我通过 -w pyinstalle
我是一名优秀的程序员,十分优秀!