conflict between multiple installs of python (linux)

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • david

    conflict between multiple installs of python (linux)

    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.
  • casevh

    #2
    Re: conflict between multiple installs of python (linux)

    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.inser t(0, '/usr/local')" and
    comment it out. That should do it.

    casevh

    Comment

    • catalinfest@gmail.com

      #3
      Re: conflict between multiple installs of python (linux)

      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.c omwrote:
      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.inser t(0, '/usr/local')" and
      comment it out. That should do it.
      >
      casevh

      Comment

      • Zentrader

        #4
        Re: conflict between multiple installs of python (linux)

        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.

        Comment

        Working...