Python equivalent of Java .jar files
In Java, you can distribute your project in JAR format. It is essentially a ZIP file with some metadata. The project can be launched easily:
$ java -jar project.jar
What is its Python equivalent? How to distribute a Python project (with several modules and packages) in a single file?
Let’s see the following project structure:
MyApp/ MyApp.py <--- Main script alibrary/ __init__.py alibrary.py errors.py anotherlib/ __init__.py another.py errors.py configs/ config.json logging.json
Rename the main script to
__main__.py and compress the project to a zip file. The extension can be
myapp.egg/ <--- technically, it's just a zip file __main__.py <--- Renamed from MyApp.py alibrary/ __init__.py alibrary.py errors.py anotherlib/ __init__.py another.py errors.py configs/ config.json logging.json
How to zip it? Enter the project directory (
MyApp/) and use this command:
zip -r ../myapp.egg .
Now you can launch the
.egg file just like you launch a Java
$ python myapp.egg
You can also use command-line arguments that are passed to