Is there a way to run a python script that is inside a zip file from bash?

二次信任 提交于 2019-12-21 12:22:24

问题


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.


回答1:


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




回答2:


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.

This module adds the ability to import Python modules (*.py, *.py[co]) and packages from ZIP-format archives. It is usually not needed to use the zipimport module explicitly; it is automatically used by the built-in import mechanism for sys.path items that are paths to ZIP archives.that are paths to ZIP archives.



来源:https://stackoverflow.com/questions/3760970/is-there-a-way-to-run-a-python-script-that-is-inside-a-zip-file-from-bash

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!