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

For*_*gic 6 python macos bash zip python-module

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

我想把我的"任务"脚本放在这个包中,那些正在使用库.然后,使用bash,我想在zip文件中调用所需的脚本而不解压缩.

目标是当我想运行我的脚本时,只有一个zip在指定的文件夹中移动.

For*_*gic 11

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

python myArchive.zip

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

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

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

例如: python __main__.py buildProject

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

  • 我找到了这个[网页](http://www.adaltas.com/en/2018/03/06/execute-python-in-an-oozie-workflow/).你也可以运行没有`__main __.py`的脚本,如:`PYTHONPATH =/path/to/myArchive.zip python -m [filename without extension] [args]` (3认同)
  • 请注意,可以运行 zip 存档中的任何脚本,即“__main__.py”文件不必位于 zip 文件的根目录中:“python /path/to/z.zip/path/within/邮编`。例如,这可以用于直接运行wheel文件(这是一个zip)中的代码:`python /path/to/wheel1.whl/module1`。另外,zip 文件始终表现为目录,因此可以在没有 zip 的情况下进行测试:“python /path/to/any/directory”将在给定目录中运行“__main__.py”。 (2认同)