问题标签 [zipapp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2767 浏览

python - 使用 __main__.py 分发可执行 zip 文件,如何访问额外数据?

我正在做一个小程序,我想使用这个配方分发它:

  1. __main__.py包含在其中的单个目录
  2. 压缩此目录并在其上添加一个 shebang#!/usr/bin/env python
  3. 使其可执行

问题是在这个包中我还有额外的文件(我正在使用 pygtk 工具包,我需要图像和 ui xml 文件)。当我尝试访问这些文件时,出现资源不可用的错误(我尝试打开的路径类似于 file.zip/gui/gui.ui )。

我该如何处理这种情况?

0 投票
4 回答
11736 浏览

python - python:可执行的zip文件可以包含数据文件吗?

作为 python 的新手,我最近才发现通过将文件放在__main__.py文件顶部直接执行 .zip 文件的能力。这适用于 python 代码,但我可以捆绑其他类型的文件并使用我的脚本访问它们吗?如果是这样,怎么做?

我的最终目标是将一些图像文件与 python 代码捆绑在一个 .zip 文件中,然后能够在应用程序中使用这些图像,而无需将它们提取到磁盘。我还想捆绑版权声明、发行说明等,以便整个应用程序及其数据文件位于一个 zip 中,无需将其提取到某个地方即可执行。

0 投票
1 回答
252 浏览

python - 如何在 zipapp 中加载 Hy 包?

我有一个 Python 脚本(作为入口点)、一个Hy库(只需添加两列)和一个输入数据文件:

我可以直接运行它并得到结果:

现在我尝试将它作为zipapp运行:

为什么mylib加载不出来?如何在 zipapp 中加载 Hy 库?

环境:

  • Anaconda 中的 Python 3.6

  • Ubuntu 16.04

谢谢!

0 投票
0 回答
151 浏览

python - 如何在 Python 中设置 zipapp 的导入路径?

我想分发一个 python 应用程序并让用户一键启动它。但即使我在应用程序中添加了包含所有依赖包的路径,除非我将包移动到顶层,否则它将无法工作。

结构有效

结构不起作用

即使我将lib文件夹添加到sys.path.

我在zipapp doc之后创建了 zip 应用程序,并且只想包含所有库,以便该应用程序即使在没有安装 python 的 PC 上也能工作。

我应该怎么做才能制作一个多合一的 zip 应用程序?

0 投票
1 回答
1642 浏览

android - Android Zipalign 有什么用

我正在阅读有关 zipalign 在 android 中的信息。我对这个概念很陌生。我在谷歌上搜索相同但没有找到任何合适的答案。

谁能告诉我 zipalign 的实际用途是什么?

签名的apk和zipalign是一样的吗?

提前致谢!

0 投票
1 回答
110 浏览

python - 如何将 httpie 与 httpie-aws-authv4 捆绑到 Python zipapp 中?

httpie 打包成 Python "PYZ" (zipapp) 很简单,例如使用

现在我尝试将httpie-aws-authv4作为 httpie 的插件包含在内,用于 AWS 身份验证。唉,httpie不拿起那个插件。

应该说[--auth-type {basic,digest,aws4}]

任何人都知道如何使这项工作?

0 投票
2 回答
944 浏览

python - How to make Flask/Jinja2 load bundled templates in an executable zip archive?

I have packaged my Flask web application into an executable Python zipped archive (zipapp). I am having problems with the loading of templates. Flask/Jinja2 is unable to find the templates.

To load templates, I used jinja2.FunctionLoader with a loading function that should have been able to read bundled files (in this case, Jinja templates) from inside the executable zip archive (reference: python: can executable zip files include data files?). However, the loading function is unable to find the template (see: (1) in the code), even though the template is readable from outside the loading function (see: (2) in the code).

Here's the directory structure:

src/__main__.py:

To produce the executable archive, I installed all dependencies into src/ (using pip3 install wheel flask --target src/), then I ran python3 -m zipapp src/ -o myapp to produce the executable archive itself. I then ran the executable archive using python3 myapp. Unfortunately, trying to access the the index page through a web browser results in an error:

The error is caused by (1) in the code. As part of my debugging effort, I added (2) to check whether or not the template could be found in the global scope of the file. Surprisingly, it successfully finds and reads the template file.

What accounts for the difference in behavior between (1) and (2)? More importantly, how can I make Flask find Jinja templates that are bundled together with a Flask app inside an executable Python zip archive?

(Python version: 3.6.8 on linux; Flask version: 1.1.1)

0 投票
0 回答
209 浏览

python - 通过 SSH 执行 pyz 文件失败,语法无效。为什么?

我想以这种方式通过 SSH 执行 pyz 文件:

当前的输出是这样的:

主机/端点是一台 Windows 机器。

我以这种方式从命令行创建了 pyz 文件:

这是 pyz 文件的链接。

测试文件夹的内容是

主要的.py

执行器.py

  • 如果我在本地执行 pyz 文件,它可以工作。
  • 如果我将 pyz 文件复制到 Windows 机器并运行“python test.pyz”,它也会按预期工作。

    任何想法发生了什么?,如何解决?

0 投票
1 回答
452 浏览

python - Manage resources in pyz applications

I have a multi-module python application that I have packed in a pyz executable with python3 -m zipapp.

I would like to deploy this application with some resources it needs to run (some text files). I have tried to just add these text files to project_root/res and then just do something like with open("./res/resource1.txt", "r") as f: do_something() but of course the file is not found.

How can I read a text file that is embedded within the zipapp application?

0 投票
1 回答
64 浏览

python - 如何使用 ctypes 加载嵌入在 python 包中的 C 动态库

我有一个 python 应用程序,它使用ctypes、加载和调用动态 C 库。

我想zipapp用这个应用程序创建一个,但我不知道如何从应用程序中获取库的路径。目录树是:

并且__main__.py是:

我通过执行以下操作创建 zipapp:

但是当我尝试执行它时,我收到一个错误,因为找不到上面的库。

我知道pkgutil.get_data可以用来读取文件内容,我想我可以读取库二进制数据,将其写入临时文件并加载它,但是有没有更好的方法来做我想做的事?