有没有办法从 bash 运行 zip 文件中的 python 脚本?
我知道有一种方法可以使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我终于找到了一种方法来做到这一点。如果我创建一个 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
查看 zipimport。它应该可以直接从安装中运行。您可能需要做一些工作才能使 pythonpath 指向您的 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.