Use different Python version with virtualenv

后端 未结 30 3332
自闭症患者
自闭症患者 2020-11-21 05:03

I have a Debian system currently running with python 2.5.4. I got virtualenv properly installed, everything is working fine. Is there a possibility that I can use a virtuale

30条回答
  •  一向
    一向 (楼主)
    2020-11-21 05:14

    Mac OSX 10.6.8 (Snow Leopard):

    1) When you do pip install virtualenv, the pip command is associated with one of your python versions, and virtualenv gets installed into that version of python. You can do

     $ which pip   
    

    to see what version of python that is. If you see something like:

     $ which pip
     /usr/local/bin/pip
    

    then do:

    $ ls -al /usr/local/bin/pip
    lrwxrwxr-x  1 root  admin  65 Apr 10  2015 /usr/local/bin/pip ->
    ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip
    

    You can see the python version in the output.

    By default, that will be the version of python that is used for any new environment you create. However, you can specify any version of python installed on your computer to use inside a new environment with the -p flag:

    $ virtualenv -p python3.2 my_env  
    Running virtualenv with interpreter /usr/local/bin/python3.2  
    New python executable in my_env/bin/python  
    Installing setuptools, pip...done.  
    

    virtualenv my_env will create a folder in the current directory which will contain the Python executable files, and a copy of the pip [command] which you can use to install other packages.

    http://docs.python-guide.org/en/latest/dev/virtualenvs/

    virtualenv just copies python from a location on your computer into the newly created my_env/bin/ directory.

    2) The system python is in /usr/bin, while the various python versions I installed were, by default, installed into:

     /usr/local/bin
    

    3) The various pythons I installed have names like python2.7 or python3.2, and I can use those names rather than full paths.

    ========VIRTUALENVWRAPPER=========

    1) I had some problems getting virtualenvwrapper to work. This is what I ended up putting in ~/.bash_profile:

    export WORKON_HOME=$HOME/.virtualenvs
    export PROJECT_HOME=$HOME/django_projects  #Not very important -- mkproject command uses this
    #Added the following based on: 
    #http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
    export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 
    #source /usr/local/bin/virtualenvwrapper.sh
    source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh
    

    2) The -p option works differently with virtualenvwrapper: I have to specify the full path to the python interpreter to be used in the new environment(when I do not want to use the default python version):

    $ mkvirtualenv -p /usr/local/bin/python3.2 my_env
    Running virtualenv with interpreter /usr/local/bin/python3
    New python executable in my_env/bin/python
    Installing setuptools, pip...done.
    Usage: source deactivate
    
    removes the 'bin' directory of the environment activated with 'source
    activate' from PATH. 
    

    Unlike virtualenv, virtualenvwrapper will create the environment at the location specified by the $WORKON_HOME environment variable. That keeps all your environments in one place.

提交回复
热议问题