有没有办法从 bash 运行 zip 文件中的 python 脚本?

发布于 2024-09-24 11:36:25 字数 188 浏览 9 评论 0原文

我知道有一种方法可以使用 python 导入 zip 文件中的模块。我在 zip 文件中创建了一种自定义 python 包库。

我也想将我的“任务”脚本放入这个包中,这些脚本正在使用该库。然后,使用 bash,我想调用 zip 文件中所需的脚本而不解压 zip。

目标是当我想运行脚本时,只有一个 zip 可以移动到指定文件夹中。

I know there is a way to import modules which are in a zip file with python. I created kind of custom python package library in a zip file.

I would like to put as well my "task" script in this package, those are using the library. Then, with bash, I would like to call the desired script in the zip file without extracting the zip.

The goal is to have only one zip to move in a specified folder when I want to run my scripts.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绿光 2024-10-01 11:36:25

我终于找到了一种方法来做到这一点。如果我创建一个 zip 文件,我必须在 zip 的根目录下创建 __main__.py。因此,可以在 main 中启动脚本并使用以下命令从 bash 调用 if :

python myArchive.zip

该命令将运行 __main__.py 文件! :)

然后我可以创建 .command 文件以使用正确的参数启动脚本。

例如,如果您需要传递参数,您还可以在 __main__.py 文件中放置一些代码,以便为您提供更大的灵活性。

例如:python __main__.py buildProject

参考文档位于:https ://docs.python.org/2/library/runpy.html

I finally found a way to do this. If I create a zip file, I must create __main__.py at the root of the zip. Thus, it is possible to launch the script inside the main and call if from bash with the following command :

python myArchive.zip

This command will run the __main__.py file! :)

Then I can create .command file to launch the script with proper parameters.

You can also put some code in the __main__.py file to give you more flexibility if you need to pass arguments for example.

ex: python __main__.py buildProject

The reference documentation is here: https://docs.python.org/2/library/runpy.html

云淡风轻 2024-10-01 11:36:25

查看 zipimport。它应该可以直接从安装中运行。您可能需要做一些工作才能使 pythonpath 指向您的 zip 文件/目录。

该模块添加了导入功能
Python 模块(*.py、*.py[co])和
来自 ZIP 格式档案的包。它
通常不需要使用
明确 zipimport 模块;这是
由内置自动使用
sys.path 项的导入机制
这些是 ZIP 存档的路径。这些是 ZIP 存档的路径。

Have a look at zipimport. It should work directly from the install. You might have to do some work to make the pythonpath point to your zip file/directory.

This module adds the ability to import
Python modules (*.py, *.py[co]) and
packages from ZIP-format archives. It
is usually not needed to use the
zipimport module explicitly; it is
automatically used by the built-in
import mechanism for sys.path items
that are paths to ZIP archives.that are paths to ZIP archives.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文