Permanently adding to the Python path in Ubuntu

C

Chris Colbert

I'm having an issue with sys.path on Ubuntu. I want some of my home
built packages to overshadow the system packages. Namely, I have built
numpy 1.3.0 from source with atlas support, and I need it to
overshadow the system numpy 1.2.1 which I had to drag along as a
dependency for other stuff. I have numpy 1.3.0 installed into
/usr/local/lib/python2.6/dist-packages/. The issue is that this
directory is added to the path after the
/usr/lib/python2.6/dist-packages/ is added, so python doesnt see my
version of numpy.

I have been combating this with a line in my .bashrc file:

export PYTHONPATH=/usr/local/lib/python2.6/dist-packages

So when I start python from the shell, everything works fine.

Problems show up when python is not executed from the shell, and thus
the path variable is never exported. This can occur when I have
launcher in the gnome panel or i'm executing from within wing-ide.

Is there a way to fix this so that the local dist-packages is added to
sys.path before the system directory ALWAYS? I can do this by editing
site.py but I think it's kind of bad form to do it this way. I feel
there has to be a way to do this without root privileges.

Any ideas?

Cheers,

Chris
 
S

Sean DiZazzo

I'm having an issue with sys.path on Ubuntu. I want some of my home
built packages to overshadow the system packages. Namely, I have built
numpy 1.3.0 from source with atlas support, and I need it to
overshadow the system numpy 1.2.1 which I had to drag along as a
dependency for other stuff. I have numpy 1.3.0 installed into
/usr/local/lib/python2.6/dist-packages/. The issue is that this
directory is added to the path after the
/usr/lib/python2.6/dist-packages/ is added, so python doesnt see my
version of numpy.

I have been combating this with a line in my .bashrc file:

export PYTHONPATH=/usr/local/lib/python2.6/dist-packages

So when I start python from the shell, everything works fine.

Problems show up when python is not executed from the shell, and thus
the path variable is never exported. This can occur when I have
launcher in the gnome panel or i'm executing from within wing-ide.

Is there a way to fix this so that the local dist-packages is added to
sys.path before the system directory ALWAYS? I can do this by editing
site.py but I think it's kind of bad form to do it this way. I feel
there has to be a way to do this without root privileges.

Any ideas?

Cheers,

Chris

I think you can modify sys.path inside your application.

Maybe this will work (at the top of your script):


import sys
sys.path[0] = "/usr/local/lib/python2.6/dist-packages"

import numpy


PS. Say hi to Steven for me!

~Sean
 
C

Chris Colbert

I don't want to have to modify the path in each and every application.

There has to be a way to do this...

Personally, I don't agree with the Debian maintainers in the order
they import anyway; it should be simple for me to overshadow system
packagers. But that's another story.

P.S. my first name is Steven!

Cheers,

Chris

I'm having an issue with sys.path on Ubuntu. I want some of my home
built packages to overshadow the system packages. Namely, I have built
numpy 1.3.0 from source with atlas support, and I need it to
overshadow the system numpy 1.2.1 which I had to drag along as a
dependency for other stuff. I have numpy 1.3.0 installed into
/usr/local/lib/python2.6/dist-packages/. The issue is that this
directory is added to the path after the
/usr/lib/python2.6/dist-packages/ is added, so python doesnt see my
version of numpy.

I have been combating this with a line in my .bashrc file:

export PYTHONPATH=/usr/local/lib/python2.6/dist-packages

So when I start python from the shell, everything works fine.

Problems show up when python is not executed from the shell, and thus
the path variable is never exported. This can occur when I have
launcher in the gnome panel or i'm executing from within wing-ide.

Is there a way to fix this so that the local dist-packages is added to
sys.path before the system directory ALWAYS? I can do this by editing
site.py but I think it's kind of bad form to do it this way. I feel
there has to be a way to do this without root privileges.

Any ideas?

Cheers,

Chris

I think you can modify sys.path inside your application.

Maybe this will work (at the top of your script):


import sys
sys.path[0] = "/usr/local/lib/python2.6/dist-packages"

import numpy


PS.  Say hi to Steven for me!

~Sean
 

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

No members online now.

Forum statistics

Threads
473,767
Messages
2,569,570
Members
45,045
Latest member
DRCM

Latest Threads

Top