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

时间:2010-09-21 13:50:55

标签: python macos bash zip python-module

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

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

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

2 个答案:

答案 0 :(得分:9)

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

python myArchive.zip

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

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

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

ex:python __main__.py buildProject

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

答案 1 :(得分:3)

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

  

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