How to run Python egg files directly without installing them?
Asked Answered
M

4

36

Is it possible to run Python egg files directly as you can run jar files with Java?

For example, with Java you might dos something like:

$ java -jar jar-file
Mumford answered 12/8, 2009 at 6:7 Comment(0)
S
18

A python egg is a "a single-file importable distribution format". Which is typically a python package.

You can import the package in the egg as long as you know it's name and it's in your path.

You can execute a package using the "-m" option and the package name.

However, python packages generally do not do anything when executed, and you may get an error. The -c option can be used to run code. (See http://docs.python.org/using/cmdline.html for details on command line options)

> python -m sphinx
sphinx is a package and cannot be directly executed


> python -c "import <package in an egg>; <function>();"



> python -c "import sphinx; print sphinx.package_dir"
C:\Python26\lib\site-packages\sphinx-0.6.1-py2.6.egg\sphinx
Swerve answered 12/8, 2009 at 7:5 Comment(0)
C
16

As of Python 2.6, you can use python some.egg and it will be executed if it includes a module named __main__.

For earlier versions of Python, you can use PYTHONPATH=some.egg python -m some module, and somemodule from the egg will be run as the main module. (Note: if you're on Windows, you'd need to do a separate SET PYTHONPATH=some.egg.)

Charissacharisse answered 24/5, 2010 at 16:8 Comment(2)
I'm using Python 3, I don't understand how to add a module named main and where, do you have an example?Zeist
The same way you add any other module to a Python project: by adding a .py file with that name, and then listing it in the setup argumentsCharissacharisse
H
6

For example, if you want to import the suds module which is available as .egg file:

egg_path='/home/shahid/suds_2.4.egg'

sys.path.append(egg_path)

import suds
#... rest of code
Hudnut answered 19/3, 2013 at 10:37 Comment(5)
@Mark where does it say that? The question ask "How to run Python egg files directly without installing them?" This answer is valid.Detestable
@Detestable - the Java example in the question is from the command line not from in JavaBrookins
@Mark You are inferring what the question is asking based on the example. There is no mention of "command line" in the question.Detestable
@Detestable - which is the only useful interpretation - jar files are run from the command lineBrookins
@Mark Running from command line is YOUR interpretation of what the question is asking. Interpretation is not required when the question is explicitly asking "How to run Python egg files directly without installing them?"Detestable
M
1

Python Egg file direct execution steps

Suppose if you have egg file and driver file to run through below command.

PYTHONPATH=eggfilename.egg python driverfile.py

above command for without install egg file with python code.

Mentor answered 3/5, 2018 at 7:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.