Location of Python modules

B

Byte

Pretty much self explanatry, where are Python modules stored in Linux?
(i.e. in /usr/bin/local, or where?)
 
B

bruno at modulix

Byte said:
Pretty much self explanatry, where are Python modules stored in Linux?
(i.e. in /usr/bin/local, or where?)
Depends on how you installed Python (or how your distro package system
installed it). But it's usually in $PREFIX/lib/pythonX.X , with $PREFIX
being one of /usr or /usr/local (third-part modules being in the
site-packages subdirectory).
 
F

Fredrik Lundh

Byte said:
Pretty much self explanatry, where are Python modules stored in Linux?
(i.e. in /usr/bin/local, or where?)

it depends on how and where Python is installed. to see where they
are on your install, use

$ python -c "import sys; print sys.path"
['', '/usr/lib/python24.zip', '/usr/lib/python2.4', '/usr/lib/python2.4/plat-linux2',
'/usr/lib/python2.4/lib-tk', '/usr/lib/python2.4/lib-dynload',
'/usr/local/lib/python2.4/site-packages', '/usr/lib/python2.4/site-packages', ...

to check where a given module is installed, you can do

$ python -c "import cgi; print cgi.__file__"
/usr/lib/python2.4/cgi.pyc

hope this helps!

</F>
 
W

wittempj

martin@jordaan:~$ python
Python 2.4.2 (#2, Sep 30 2005, 21:19:01)
They are in one of the directories listed in sys.path, for me this is:
[GCC 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.['', '/usr/lib/python24.zip', '/usr/lib/python2.4',
'/usr/lib/python2.4/plat-linux2', '/usr/lib/python2.4/lib-tk',
'/usr/lib/python2.4/lib-dynload',
'/usr/local/lib/python2.4/site-packages',
'/usr/lib/python2.4/site-packages',
'/usr/lib/python2.4/site-packages/HTMLgen',
'/usr/lib/python2.4/site-packages/Numeric',
'/usr/lib/python2.4/site-packages/PIL',
'/usr/lib/python2.4/site-packages/cairo',
'/usr/lib/python2.4/site-packages/gtk-2.0']
see http://docs.python.org/lib/module-sys.html
 
?

=?ISO-8859-1?Q?=22Martin_v=2E_L=F6wis=22?=

Byte said:
No, not there

Sure:

martin@mira:~$ ls /usr/lib/python2.4/site-packages
apt debconf.py Numeric pygtk.py
README
apt_inst.so debconf.pyc Numeric.pth pygtk.pyc
setuptools-0.6a8-py2.4.egg
apt_pkg.so easy-install.pth ORBit.la pygtk.pyo
setuptools.pth
cairo FormEncode-0.4-py2.4.egg ORBit.so pygtk.py.python2.4-gtk2
cairo.pth gtk-2.0 pygtk.pth python-support.pth


You mean, on *your* Linux? Give me an SSH account to your machine,
and I find out for you.

Regards,
Martin
 
B

Byte

Found it in /usr/local/lib/python2.4/site-packages, thanks. Now, how do
i convert a .py program into a module?

-- /usr/bin/byte
 
F

Fredrik Lundh

Byte said:
Found it in /usr/local/lib/python2.4/site-packages, thanks. Now, how do
i convert a .py program into a module?

a .py program is a module (the module's content is what's left when the
program is finished).

to make a useful module, just make sure that it defines all the stuff you
want to make available (functions, classes, constants, etc), and that it
doesn't have any unexpected side-effects.

to create a script that can be used both as a script and as a module, you
can check the __name__ variable. see:

http://diveintopython.org/getting_to_know_python/testing_modules.html

for more on this.

</F>
 
S

Szabolcs Nagy

LOL

a .py program is a module, you can import it:
if it is in the sys.path (import modulename).
if it sits in a directory that is in the sys.path and the directory
also has a __init__.py file (import dirname.modulename / from dirname
import modulname).
if there is a modulename.pth file in the sys.path containing the path
to your .py file.
(the current dir is always in the sys.path).

if you want to install your module (copy it under the site-packages
dir), then you should use distutils module and create a setup.py script

the compiled bytecode (.pyc file) is always automatically generated
 
F

Fredrik Lundh

Byte said:
sys.path, what is this?

a variable in the sys module. quoting from a reply that you might have
missed:

$ python -c "import sys; print sys.path"
['', '/usr/lib/python24.zip', '/usr/lib/python2.4', '/usr/lib/python2.4/plat-linux2',
'/usr/lib/python2.4/lib-tk', '/usr/lib/python2.4/lib-dynload',
'/usr/local/lib/python2.4/site-packages', '/usr/lib/python2.4/site-packages', ...

</F>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,285
Messages
2,571,415
Members
48,107
Latest member
jigyasauniversity

Latest Threads

Top