conflict between multiple installs of python (linux)

D

david

You learn something new every day:

On my ubuntu, update-manager is supposed to use the python2.5
installed on /usr/bin. Well, I had subsequently installed a whole
bunch of stuff in /usr/local (/usr/local/bin/python and /usr/local/lib/
python2.5 etc), which I have happily been using for development for a
year. I had thought that the two pythons were completely independent.

Well, I was wrong. When /usr/bin/python2.5 runs, *by default*, it
adds /usr/local/lib/python2.5 to its sys path - and apparently there
are things in /usr/local which are inconsistent with those at /usr
(not suprising).

I have fixed the problem - but I had to modify the actual update-
manager .py file itself. At the beginning, I set the sys.path in
python *explicitly* to not include the /usr/local stuff.

But this is clearly a kludge. My question: how do I keep the Ubuntu
python stuff at /usr/bin/python2.5 from adding /usr/local/lib/
python2.5 to the import search path in a clean and global way? I
really want both pythons completely isolated from one another!

Thankyou.
 
C

casevh

You learn something new every day:

On my ubuntu, update-manager is supposed to use the python2.5
installed on /usr/bin. Well, I had subsequently installed a whole
bunch of stuff in /usr/local (/usr/local/bin/python and /usr/local/lib/
python2.5 etc), which I have happily been using for development for a
year. I had thought that the two pythons were completely independent.

Well, I was wrong. When /usr/bin/python2.5 runs, *by default*, it
adds /usr/local/lib/python2.5 to its sys path - and apparently there
are things in /usr/local which are inconsistent with those at /usr
(not suprising).

I have fixed the problem - but I had to modify the actual update-
manager .py file itself. At the beginning, I set the sys.path in
python *explicitly* to not include the /usr/local stuff.

But this is clearly a kludge. My question: how do I keep the Ubuntu
python stuff at /usr/bin/python2.5 from adding /usr/local/lib/
python2.5 to the import search path in a clean and global way? I
really want both pythons completely isolated from one another!

Thankyou.

Python's path is build by site.py. In the file /usr/lib/python2.5/
site.py, look for the line "prefixes.insert(0, '/usr/local')" and
comment it out. That should do it.

casevh
 
C

catalinfest

Is some problems with 2.5 i see something on internet (ex: ctypes )
So i try to install 2.5.1 for pyglet1.1, but not work with ctypes .
So ctypes lib is on the path lib's !?
But python2.6 work with ctypes.
The python2.5 and 2.6 have been installed with same command:
python setup.py install
If you see my code :

python2.5
Python 2.5.1 (r251:54863, Jul 4 2008, 14:55:17)
[GCC 4.3.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/ctypes/__init__.py", line 10, in
<module>
from _ctypes import Union, Structure, Array
ImportError: No module named _ctypesTraceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/site-packages/pyglet/__init__.py",
line 69, in <module>
_require_ctypes_version('1.0.0')
File "/usr/local/lib/python2.5/site-packages/pyglet/__init__.py",
line 64, in _require_ctypes_version
import ctypes
File "/usr/local/lib/python2.5/ctypes/__init__.py", line 10, in
<module>
from _ctypes import Union, Structure, Array
ImportError: No module named _ctypes
python (default python )
Python 2.6b1 (r26b1:64398, Jul 4 2008, 15:57:20)
[GCC 4.3.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Try python 2.6
To see the path this is some code:

import sys
print sys.path
print sys.prefix
print sys.prefix

Have a nice day !
 
Z

Zentrader

You learn something new every day:

On my ubuntu, update-manager is supposed to use the python2.5
installed on /usr/bin. Well, I had subsequently installed a whole
bunch of stuff in /usr/local (/usr/local/bin/python and /usr/local/lib/
python2.5 etc), which I have happily been using for development for a
year. I had thought that the two pythons were completely independent.

Well, I was wrong. When /usr/bin/python2.5 runs, *by default*, it
adds /usr/local/lib/python2.5 to its sys path - and apparently there
are things in /usr/local which are inconsistent with those at /usr
(not suprising).

I have fixed the problem - but I had to modify the actual update-
manager .py file itself. At the beginning, I set the sys.path in
python *explicitly* to not include the /usr/local stuff.

But this is clearly a kludge. My question: how do I keep the Ubuntu
python stuff at /usr/bin/python2.5 from adding /usr/local/lib/
python2.5 to the import search path in a clean and global way? I
really want both pythons completely isolated from one another!

Thankyou.

When you install a second version, let us say Python3.0, you want to
download the source and do the normal config and make but not make
install. Instead do a make altinstall. They will be kept separate.
I have Ubuntu's 2.5 as well as 3.0. Ubuntu installs to /usr/bin and /
usr/lib, so I installed 3.0 from /usr/local/Python-3.0 and those files
installed into /usr/local/bin and lib and the executable is
python3.0. Take a look at the README file that comes with the source
code for other options.
 

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,989
Messages
2,570,207
Members
46,782
Latest member
ThomasGex

Latest Threads

Top