By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,483 Members | 1,045 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,483 IT Pros & Developers. It's quick & easy.

conflict between multiple installs of python (linux)

P: n/a
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.
Jul 5 '08 #1
Share this Question
Share on Google+
3 Replies


P: n/a
On Jul 5, 11:09*am, david <dgel...@gmail.comwrote:
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
Jul 5 '08 #2

P: n/a
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.
>>import ctypes
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 _ctypes
>>import pyglet
Traceback (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.
>>import ctypes
import pyglet
print pyglet.version
1.1beta2
>>>

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 !

On Jul 5, 10:04 pm, casevh <cas...@gmail.comwrote:
On Jul 5, 11:09 am, david <dgel...@gmail.comwrote:
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
Jul 6 '08 #3

P: n/a
On Jul 5, 11:09 am, david <dgel...@gmail.comwrote:
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.
Jul 8 '08 #4

This discussion thread is closed

Replies have been disabled for this discussion.