How to install a python library manually

Osada Lakmal picture Osada Lakmal · Feb 8, 2011 · Viewed 106.8k times · Source

I built quickfix engine (http://www.quickfixengine.org/) for one of my tasks and also built in python support for it.

Unfortunately this is a multi user env and I dont have access to the python installation path. Thus the make install command tries to copy over the files and fails. I managed to comment out the two lines where it tries to do that and the make install completed. Since I cannot put the files there, where can I put the .so file created?

And how do I let python know that it is there? I looked at python.org documentation but it only describes the process for setup.py installations.

Also I tried putting the path for the .so in sys.path, that didnt work. And is there any documents about the anatomy of a python package? Thanks.

Answer

gotgenes picture gotgenes · Feb 8, 2011

I'm going to assume compiling the QuickFix package does not produce a setup.py file, but rather only compiles the Python bindings and relies on make install to put them in the appropriate place.

In this case, a quick and dirty fix is to compile the QuickFix source, locate the Python extension modules (you indicated on your system these end with a .so extension), and add that directory to your PYTHONPATH environmental variable e.g., add

export PYTHONPATH=~/path/to/python/extensions:PYTHONPATH

or similar line in your shell configuration file.

A more robust solution would include making sure to compile with ./configure --prefix=$HOME/.local. Assuming QuickFix knows to put the Python files in the appropriate site-packages, when you do make install, it should install the files to ~/.local/lib/pythonX.Y/site-packages, which, for Python 2.6+, should already be on your Python path as the per-user site-packages directory.

If, on the other hand, it did provide a setup.py file, simply run

python setup.py install --user

for Python 2.6+.