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

12 投票
2 回答
14234 浏览
提问于 2025-04-16 04:24

我知道在Python中,有一种方法可以导入存放在zip文件里的模块。我创建了一个自定义的Python包库,放在了一个zip文件里。

我还想把我的“任务”脚本放进这个包里,这些脚本会使用这个库。然后,我想通过bash命令来调用zip文件里的指定脚本,而不需要先解压这个zip。

我的目标是只需要移动一个zip文件到指定的文件夹,就能运行我的脚本。

2 个回答

3

看看这个 zipimport。它应该可以直接从安装中使用。你可能需要做一些工作,让pythonpath指向你的zip文件或目录。

这个模块让你可以从ZIP格式的压缩包中导入Python模块(*.py, *.py[co])和包。通常情况下,你不需要特别去使用zipimport模块;它会自动被Python的内置导入机制使用,只要sys.path中的路径指向ZIP压缩包就可以了。

20

我终于找到了一种方法来实现这个功能。如果我创建一个压缩文件(zip),我必须在压缩文件的根目录下创建一个叫做 __main__.py 的文件。这样,就可以在主程序里面启动这个脚本,并通过下面的命令在bash中调用它:

python myArchive.zip

这个命令会运行 __main__.py 文件! :)

接着,我可以创建一个 .command 文件来用合适的参数启动这个脚本。

你也可以在 __main__.py 文件中写一些代码,这样如果你需要传递参数的话,会更灵活。

比如:python __main__.py buildProject

参考文档在这里: https://docs.python.org/2/library/runpy.html

撰写回答