为什么每个虚拟环境都在pyenv中使用(指向)相同的python版本?

时间:2016-08-19 09:13:24

标签: python virtualenv pyenv

我正在使用pyenvvirtualenv,'autev`来设置我的虚拟环境。

我安装Python3.5.1Python2.7.9并创建多个项目虚拟环境。

但是当我激活每个环境并通过which python检查python版本时:它们指向相同的python执行文件:

  1. Python 3.5.1 env
  2. (chacha_dabang)Chois @ Chois-MacPro $哪个python
    /Users/Chois/.pyenv/shims/python


    (chacha_dabang)Chois @ Chois-MacPro $ pip
    /Users/Chois/.pyenv/shims/pip


    1. Python 2.7.9 env

      (pycon2016)Chois @ Chois-MacPro $(主人)哪个python
      /Users/Chois/.pyenv/shims/python
      (pycon2016)Chois @ Chois-MacPro $(主人)哪个点子 /Users/Chois/.pyenv/shims/pip

    2. 我将目录更改为:/Users/Chois/.pyenv/shims

      Chois@Chois-MacPro pyconapac-2016 $ (master)cd ~/.pyenv/shims/
      Chois@Chois-MacPro shims $ls
      2to3                    easy_install-2.7        iptest3                 nosetests-3.4           pip2.7                  python3                 rst2xml.py
      2to3-3.5                easy_install-3.5        ipython                 painter.py              pip3                    python3-config          rstpep2html.py
      __pycache__             enhancer.py             ipython3                painter.pyc             pip3.5                  python3.5               smtpd.py
      activate                enhancer.pyc            jsonschema              pep8                    player.py               python3.5-config        sphinx-apidoc
      activate.csh            explode.py              jupyter                 pilconvert.py           player.pyc              python3.5m              sphinx-autogen
      activate.fish           explode.pyc             jupyter-kernelspec      pilconvert.pyc          pybabel                 python3.5m-config       sphinx-build
      activate_this.py        f2py3.5                 jupyter-migrate         pildriver.py            pydoc                   pyvenv                  sphinx-quickstart
      coverage                gifmaker.py             jupyter-nbconvert       pildriver.pyc           pydoc3                  pyvenv-3.5              sqlformat
      coverage-3.5            gifmaker.pyc            jupyter-nbextension     pilfile.py              pydoc3.5                rst2html.py             thresholder.py
      coverage3               idle                    jupyter-notebook        pilfile.pyc             pygmentize              rst2latex.py            thresholder.pyc
      createfontdatachunk.py  idle3                   jupyter-qtconsole       pilfont.py              python                  rst2man.py              viewer.py
      createfontdatachunk.pyc idle3.5                 jupyter-serverextension pilfont.pyc             python-config           rst2odt.py              viewer.pyc
      django-admin            ipcluster               jupyter-troubleshoot    pilprint.py             python2                 rst2odt_prepstyles.py   virtualenv
      django-admin.py         ipcontroller            jupyter-trust           pilprint.pyc            python2-config          rst2pseudoxml.py        waitress-serve
      django-admin.pyc        ipengine                jwt                     pip                     python2.7               rst2s5.py               wheel
      easy_install            iptest                  nosetests               pip2                    python2.7-config        rst2xetex.py
      

      他们有python2和python3 ......

      我认为当我设置某个项目的virtualenv时,它本身就应该是这样的virtualenv python

      Chois@Chois-MacPro bin $pwd
      /Users/Chois/.pyenv/versions/chacha_dabang/bin
      Chois@Chois-MacPro bin $ls
      __pycache__             easy_install            iptest3                 jupyter-qtconsole       pildriver.py            python                  rst2xml.py
      activate                easy_install-3.5        ipython                 jupyter-serverextension pilfile.py              python3                 rstpep2html.py
      activate.csh            enhancer.py             ipython3                jupyter-troubleshoot    pilfont.py              rst2html.py             sphinx-apidoc
      activate.fish           explode.py              jsonschema              jupyter-trust           pilprint.py             rst2latex.py            sphinx-autogen
      coverage                f2py3.5                 jupyter                 jwt                     pip                     rst2man.py              sphinx-build
      coverage-3.5            gifmaker.py             jupyter-kernelspec      nosetests               pip3                    rst2odt.py              sphinx-quickstart
      coverage3               ipcluster               jupyter-migrate         nosetests-3.4           pip3.5                  rst2odt_prepstyles.py   sqlformat
      createfontdatachunk.py  ipcontroller            jupyter-nbconvert       painter.py              player.py               rst2pseudoxml.py        thresholder.py
      django-admin            ipengine                jupyter-nbextension     pep8                    pybabel                 rst2s5.py               viewer.py
      django-admin.py         iptest                  jupyter-notebook        pilconvert.py           pygmentize              rst2xetex.py            waitress-serve
      

      因此,当我在which python virtualenv中输入chacha_dabang时,应指向:/Users/Chois/.pyenv/versions/chacha_dabang/bin/python

      我该如何解决?

2 个答案:

答案 0 :(得分:1)

没问题

当您尝试运行Python时,它首先在当前目录中查找.python-version以确定要运行哪个版本的python。如果找不到此文件,则会查找用户级文件~/.pyenv/version

您可以使用python --version代替which python

答案 1 :(得分:0)

要更改PYTHONPATH中使用的virtualenv,您必须将此行添加到您的virtualenv的bin/activate文件中:

`export PYTHONPATH =" / correct_path /"


所以在你的情况下它应该是export PYTHONPATH="/Users/Chois/.pyenv/versions/chacha_dabang/bin/python"