我知道有一种方法可以导入与python压缩文件中的模块。我在一个zip文件中创建了一种自定义的python包库。有没有办法从bash运行zip文件中的python脚本?
我想把我的“任务”脚本放在这个包中,那些正在使用库。然后,用bash,我想在zip文件中调用所需的脚本,而不用提取zip。
目标是当我想运行我的脚本时,只有一个zip文件在指定的文件夹中移动。
我知道有一种方法可以导入与python压缩文件中的模块。我在一个zip文件中创建了一种自定义的python包库。有没有办法从bash运行zip文件中的python脚本?
我想把我的“任务”脚本放在这个包中,那些正在使用库。然后,用bash,我想在zip文件中调用所需的脚本,而不用提取zip。
目标是当我想运行我的脚本时,只有一个zip文件在指定的文件夹中移动。
我终于找到了一种方法来做到这一点。如果我创建一个zip文件,我必须在zip的根目录下创建__main__.py
。因此,有可能推出主打内线的脚本,如果从庆典用下面的命令调用:
python myArchive.zip
此命令将运行__main__.py
文件! :)
然后,我可以创建.command
文件以启动具有适当参数的脚本。
如果您需要传递参数,您还可以在__main__.py
文件中添加一些代码,以便为您提供更多的灵活性。
例如:python __main__.py buildProject
看看zipimport。它应该从安装直接工作。你可能需要做一些工作来使pythonpath指向你的zip文件/目录。
此模块增加了导入 Python模块的能力(*的.py,*的.py [CO])和来自ZIP格式档案 包。 通常不需要明确使用 zipimport模块;它是 自动使用的内置 导入机制的sys.path项目 是ZIP档案的路径,即ZIP档案的路径。
我的意思是为了创建一个.command文件,是启动所需的脚本运行与bash命令Zip文件里python脚本。也许这是不可能没有python? – ForceMagic 2010-09-21 14:34:43
我不知道任何可以直接在zip压缩文件中调用脚本的东西。可悲的是,你必须依靠python来读取防止你使用__main__ ==“__main__”成语的python脚本。 – Rod 2010-09-21 15:11:59
好的,非常感谢! 相反,我会尝试找到一些东西来创建一个像我的python文件一样的应用程序。因为在当前的情况下,我只需要一个文件,我的用户可以点击并使用其模块运行脚本。 我在考虑py2app,因为我在Mac上。 – ForceMagic 2010-09-21 15:20:19
太好了。我以为你想在zip压缩文件中任意调用“any”脚本。 – Rod 2010-09-21 18:53:35
基本上这是我想要的,但没有解压缩文件。所以这是我发现的唯一途径。 – ForceMagic 2010-09-21 19:58:41