簡體   English   中英

如何使用pyenv,virtualenv和pipenv?

[英]How to work with pyenv, virtualenv and pipenv?

我正在尋找類似於/等於RVM的 Python版本管理器(對於Ruby),我發現pyenv但它只是一個切換器,所以我需要將它與virtualenv (我的理解到目前為止)結合起來,有點費力但我可以習慣它。 此外我讀過pipenv建議使用而不是virtualenv ,所以它可以與pyenv一起使用嗎? 怎么樣?

然而文章 venv,pyvenv,pyenv,virtualenv,virtualenvwrapper,pipenv等有什么區別? 提到 pyenv在Python 3.6中已棄用。 所以我又零而又困惑,我該怎么用? 我應該如何使用它?

系統:Arch Linux,Plasma。

Python的當前(已安裝)版本:2.7.14和3.6.4

我打算做什么:我需要一個框架,如果由於任何原因我需要使用版本:3.4.7,3.2.6,2.6.7和2.3.3,我可以毫不費力地做到這一點。

我希望你的幫助,謝謝大家。

你有兩個選擇

  1. 使用pyenv和pyenv-virtualenv包裝器。

例如,您想要創建一個新的項目測試,並且還想為它創建一個虛擬環境。

  • pyenv安裝3.6.5
  • pyenv virtualenv 3.6.5測試
  • cd / project_path
  • pyenv本地測試

下次,您訪問項目目錄,它將自動更改為測試環境

  1. 一起使用pyenv和pipenv

首先,將此腳本添加到env配置(bashrc或zshenv等)

export PIPENV_VENV_IN_PROJECT=1
PROMPT_COMMAND='prompt'
precmd() { eval "$PROMPT_COMMAND" }
function prompt()
{
    if [ ! $PIPENV_ACTIVE ]; then
      if [ `pipenv --venv 2>/dev/null` ]; then
        export PIPENV_INITPWD="$PWD"
        pipenv shell
      fi
    elif [ $PIPENV_INITPWD ] ; then
      cd "$PIPENV_INITPWD"
      unset PIPENV_INITPWD
    fi
}

然后

  • pyenv安裝3.6.5
  • pyenv shell 3.6.5
  • pip安裝pipenv
  • cd / project_path
  • pipenv --python 3.6.5

下次訪問目錄時,它將更改為正確的通風口(注意:在訪問項目目錄之前應使用pyenv shell 3.6.5)

如果我沒記錯的話,virtualenv更多的是確保你的應用程序不會干擾同一個運行系統上的其他應用程序。 如果您正在運行基於UNIX的操作系統(Linux / FreeBSD / macOS),您可以編譯python(使用configure --prefix = / opt / python /)並在.bashrc或bash_profile中為二進制可執行文件添加別名。

alias python363='/opt/python363/bin/python3'

或者如果你想使它成為系統范圍並且可以訪問root,你可以創建一個符號鏈接ln -s /opt/python363/bin/python3 /usr/bin/python363 (例如版本3.6.3)。

然后用python363 /path/to/your/script.py執行該文件

有沒有更好的方法呢? 可能,但它是你的困境的一種替代方案,盡管不是最優雅的。

  • 注意:您還必須為使用該特定版本安裝的pip命令添加別名,以便將庫安裝到正確的版本

即在.bashrc或bash_profile中

alias pip363='/opt/python363/bin/pip3'

或者作為符號鏈接的root用戶

 ln -s /opt/python363/bin/pip3 /usr/bin/pip363

pyenv支持virtualenvs

只需安裝所需的python版本,例如:

pyenv install 3.6.4
pyenv install 3.6.0

使用參數global選擇所需的python版本

pyenv global 3.6.4

然后創建一個virtualenv(我將其命名為myve)

pyenv virtualenv myve

並通過激活激活它

pyenv activate myve

與您手動創建的典型virtualenv的唯一區別是位置,並且您將擁有它的名稱,但最后,它非常舒適,類似於virtualenvwrapper的工作方式。

檢查激活了哪個virtualenv或版本

pyenv versions

停用

pyenv deactivate 

使用uninstall刪除virtualenv或python版本

pyenv uninstall myve

最近的老路

使用Pyenv,你要做的第一件事是安裝virtualenv插件。 使命名和使用虛擬環境成為一種魅力。

*

新的方式

仍然使用Pyenv來維護幕后的python版本。 使用pipenv作為包管理+虛擬環境工具。 唯一的技巧是在使用它的墊片更新PYENV_ROOT后,將export PIPENV_PYTHON="$PYENV_ROOT/shims/python"到.rc文件(.bashrc或 .zshrc pyenv which python以后會出錯,但pipenv不會。 我在博客文章中詳細介紹了,無恥地提到了一個插件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM