Install python module to non default version of python on Mac

后端 未结 3 1279
遥遥无期
遥遥无期 2021-01-12 02:59

I have a couple different versions of Python installed on my Mac. The default version is 2.5, so when I install a module it gets installed to 2.5. I need to be able to insta

相关标签:
3条回答
  • 2021-01-12 03:39

    If you're installing through setuptools (ie python setup.py), it will install to the lib directory for the python executable you use (unless it's a broken package).

    0 讨论(0)
  • 2021-01-12 03:40

    If you've installed them using macports then you run (as root):

    port select --set python <python_version>
    

    Hint: To list available versions run:

    port select --list python
    

    Otherwise you can set the $PYTHON_PATH environment variable and add your desired python path to your $PATH environment variable as well.

    You will also need to update the python.current (or something with similar name) symbolic link in /Library/Frameworks/Python.framework.


    I strongly recommend to install all the versions using a package manager (homebrew, macports, fink, etc.) so they'll be easier to manage.

    0 讨论(0)
  • 2021-01-12 03:41

    If you're installing using setup.py, just run it via the appropriate version of Python, e.g.:

    python2.6 setup.py install
    

    If you're using easy_install there should be a version for the corresponding Python version called easy_install-N.N, e.g.

    easy_install-2.6 some_module
    

    If you're working on different projects that require different versions of Python, consider using virtualenv (and virtualenvwrapper) - it allows you to fire up and use multiple environments each with its own version of Python and set of libraries. Example usage would be something like:

    $ python -V
    Python 2.5.4
    $ mkvirtualenv --python=python2.6 foo
    foo $ python -V
    Python 2.6.1
    foo $ pip install some_mod # installs module in foo's library, rather
                               # than site wide
    foo $ deactivate # leave the virtual env
    $ python -m some_mod
    /path/to/python: No module named some_mod
    

    To go back to the foo environment later, use workon:

    $ workon foo
    foo $ python -m some_mod # no error, apns available within the env
    foo $ 
    

    So you can use virtualenv to maintain separate environments for each version of Python you have installed. Within those environments, pip and easy_install just do the right thing.

    0 讨论(0)
提交回复
热议问题