1. 程式人生 > >使用pyenv和virtualenv搭建python虛擬環境實踐總結

使用pyenv和virtualenv搭建python虛擬環境實踐總結

介紹

出於種種原因,很多人的電腦上會同時安裝很多個版本的 Python,比如會有 2.7 + 3.4。一般在 windows 下我們都可以通過使用絕對路徑的方式來繞過系統對 PATH 環境變數的查詢;在 Linux 下除了這種方式外,還可以在指令碼檔案開頭顯示指定需要使用的直譯器,就像這樣:#!/usr/bin/env python2.7 或 #!usr/bin/env python3.4。一旦特定版本的直譯器被開啟後,就不用再擔心 PATH 的問題了

對於上述問題的解決方案,更多人可能會首先想到 virtualenv。但與用於建立獨立包環境的 virtualenv 不同,pyenv 的作用僅限於維護不同版本的 Python。它的使用不依賴於 Python,是一個簡單、獨立的純 shell 指令碼工具。pyenv 也以 pyenv-virtualenv 外掛的形式支援 virtualenv,強烈建議使用。安裝後比較方便的是可以在你 cd 到專案目錄時自動切換相應的虛擬環境,而不用老是 source.

pyenv 在安裝和配置完畢後可以實現:一鍵(命令)切換全域性、本地或當前 shell 使用的 Python 版本。

pyenv 原理

pyenv 的美好之處在於,他並沒有使用將不同的 PATHshellPATH 的最前面插入了一個墊片路徑(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有對 Python 可執行檔案的查詢都會首先被這個 shims 路徑截獲,從而架空了後面的系統路徑。

安裝pyenv

pyenv 的 github 頁面 提供了完整的安裝與使用指導,所以本文基本上就是對 Readme 的翻譯和解釋

手動安裝

手動安裝詳細步驟如下:

$mkdir ~/.pyenv
$git clone git://github.com/yyuu/pyenv.git .pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile  #向 shell 新增 pyenv init 以啟用 shims 和命令補完功能
$ exec $SHELL $ source ~/.bash_profile

這裡的 shell 配置檔案(~/.bash_profile)依不同Linux 而需作修改——Zsh:~/.zshenv;Ubuntu:~/.bashrc

自動安裝

pyenv 命令總結

常用命令如下:
- pyenv versions:檢視當前 pyenv 可檢測到的所有版本,處於啟用狀態的版本前以 * 標示。
- pyenv version:檢視當前處於啟用狀態的版本,括號中內容表示這個版本是由哪條途徑啟用的(global、local、shell)
- pyenv install:使用 python-build(一個外掛) 安裝一個 Python 版本,到 $PYENV_ROOT/versions 路徑下。建議新增 -v 引數用於顯示細節。python-build 會首先嚐試從一個映象站點下載包,此時可以去 /tmp/python-build.xxx 裡面關心一下下載速度
- pyenv uninstall:解除安裝一個版本
- pyenv rehash:為所有已安裝的可執行檔案 (如:~/.pyenv/versions//bin/) 建立 shims,因此,每當你增刪了 Python 版本或帶有可執行檔案的包(如 pip)以後,都應該執行一次本命令
- pyenv global:設定全域性的 Python 版本,通過將版本號寫入 ~/.pyenv/version 檔案的方式。
- pyenv local:設定面向程式的本地版本,通過將版本號寫入當前目錄下的 .python-version 檔案的方式。通過這種方式設定的 Python 版本優先順序較 global 高。pyenv 會從當前目錄開始向上逐級查詢 .python-version 檔案,直到根目錄為止。若找不到,就用 global 版本。
- pyenv shell:設定面向 shell 的 Python 版本,通過設定當前 shell 的 PYENV_VERSION 環境變數的方式。這個版本的優先順序比 local 和 global 都要高。–unset 引數可以用於取消當前 shell 設定的版本。

安裝pyenv-virtualenv

介紹

pyenv virtualenv是pyenv的外掛,為UNIX系統上的Python virtualenvs提供pyenv virtualenv命令。

安裝步驟

$git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
$source ~/.bash_profile

實踐

多個Python版本快速切換

  • 首先我們可以檢視一下有哪些版本的python 可以安裝:pyenv install –list
  • 安裝:pyenv install -v 3.5.3(這個過程會比較漫長)
  • pyenv versions (檢視所有版本)
$ pyenv versions         
* system (set by /root/.pyenv/version)
  3.5.3
  • pyenv version(檢視當前版本)

系統中不同python版本切換的操作截圖如下:
這裡寫圖片描述

利用virtualenv 建立虛擬python環境

  1. 建立一個3.5.3的環境:$ pyenv virtualenv 3.5.3 env353 (這條命令在本機上建立了一個名為env353的python虛擬環境,這個環境的真實目錄位於:~/.pyenv/versions/)
  2. 切換和使用新的python虛擬環境:$ pyenv activate env353
  3. 環境驗證
(env353) [email protected]5-25-18:~#  pyenv activate env353 
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

(env353) [email protected]5-25-18:~#  python --version
Python 3.5.3

(env353) [email protected]5-25-18:~#  pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
pip (9.0.1)
setuptools (28.8.0)

可以看到, python版本已經是3.5.3, 而且是在虛擬環境之中 (env353),這時可以對這個環境進行任意包的安裝,且不會對其他環境造成影響

  1. 離開環境:pyenv deactivate

相關推薦

使用pyenvvirtualenv搭建python虛擬環境實踐總結

介紹 出於種種原因,很多人的電腦上會同時安裝很多個版本的 Python,比如會有 2.7 + 3.4。一般在 windows 下我們都可以通過使用絕對路徑的方式來繞過系統對 PATH 環境變數的查詢;在 Linux 下除了這種方式外,還可以在指令碼檔案開頭顯示

使用virtualenv搭建Python虛擬環境

virtualenv用來部署獨立Python的一個工具,用來解決版本依賴,及不相容的專案。virtualenv介紹virtualenv部署時擁有自己的安裝目錄,不與其它任何環境共享一個庫,能夠管理Python的版本和庫。如同時開發多個應用時,這些應用需要共用一個Python,

pyenv virtualenv 搭建單機多版本python 虛擬開發環境

作為主流開發語言, 用python 開發的程式越來越多。 方便的是大多linux系統裡面都預設集成了python, 開發可以隨時隨地開始。 但有時候這也成為了一個短板, 比如說有時候我們需要開發和除錯一些需要安裝在預設python路徑裡的程式, 反覆地修改和安裝會使系統目錄越來越亂,這對於一些有潔癖的程式設計

pyenvvirtualenv搭建單機多版本python虛擬開發環境

作為主流開發語言, 用python 開發的程式越來越多。 方便的是大多linux系統裡面都預設集成了python, 開發可以隨時隨地開始。 但有時候這也成為了一個短板, 比如說有時候我們需要開發和除錯一些需要安裝在預設python路徑裡的程式, 反覆地修改和安裝會使系統目錄越來

Mac OSX python多版本管理工具:pyenv virtualenv搭建

macos pyenv pyenv-virtualenv本博文只是簡單介紹如何安裝 概念問題 請自行查詢環境:10.13.1+shell1、安裝brew官網地址:https://brew.sh//usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercon

使用VirtualenvVirtualwrapper建立Python虛擬環境

轉載請註明出處:http://blog.csdn.net/dongdong9223/article/details/83784321 本文出自【我是幹勾魚的部落格】 Ingredient: Python:Python 3.6.6(Python Downlo

使用virtualenv建立python虛擬環境第一個Django專案

python虛擬環境--virtualenv virtualenv是一個建立隔絕的Python環境的工具。virtualenv建立一個包含所有必要的可執行檔案的資料夾,用來使用Python工程所需的包. window安裝 pip install virtualenv 或 pip3

windows下使用virtualenv進行python虛擬環境搭建

virtualenv是用於建立獨立的python虛擬環境 virtualenv的優點 1.使得不同python應用的開發環境相互獨立 2.開發環境升級不影響其他應用的開發環境,也不會影響全域性的環境(預設是的開發環境是全域性開發環境),因為虛擬環境是將全域性環境進行私有的複製

Mac 如何搭建python虛擬環境

首先去python官網 下載python3的 安裝包安裝: https://www.python.org/ftp/python/3.6.5/python-3.6.5-macosx10.9.pkg 安裝python3,升級pip3 sudo pip3 install --upgrade pip 安裝 vir

手把手教你搭建Python虛擬環境,還不會的同學收藏學習哦!

不同的python專案可能會用到不同的包,而不同的包或不同的python版本之間可能存在衝突。因此,為每個專案建立不同的虛擬環境非常有用。它可以保證一個專案只訪問,它所在虛擬環境下安裝的包,保持全域性直譯器的乾淨整潔,而且由於環境是獨立的,因此不需要超戶許可權。 進群:943752371可以獲取

使用pipenv搭建python虛擬環境

使用pipenv的優勢可以參考 知乎大佬的一篇文章 https://zhuanlan.zhihu.com/p/32913361 一、首先在python 官網安裝推薦版的python https://www.python.org/downloads/ 二、新建專案目錄並進入專案所

pyenvvirtualenv管理python的版本(多個版本同時用)

雜項 http pip git gin 創建 再次 是你 note 1、homebrew安裝: https://brew.sh/index_zh-cn 2、pyenv安裝使用: https://blog.csdn.net/m0_37998140/article/deta

手把手教你搭建Python虛擬環境,還不會趕緊收藏學習哦!

fec term 幹凈 ces 激活 ima 出現 virtual 直接 不同的python項目可能會用到不同的包,而不同的包或不同的python版本之間可能存在沖突。因此,為每個項目創建不同的虛擬環境非常有用。它可以保證一個項目只訪問,它所在虛擬環境下安裝的包,保持全局解

ubuntu virtualenv python 虛擬環境的安裝配置

more def light 安裝 orm fault class mat logs 安裝 : sudo apt-get install python-virtualenv 創建python2虛擬環境: sudo apt-get install

windows下python虛擬環境virtualenv安裝使用

安裝包 退出 顯示 變量 其他 virt ubuntu down load 前面介紹了python在ubuntu16.04環境下,python的虛擬環境virtualenv的安裝,下面介紹在windows環境下的安裝和使用。 環境信息 操作系統:windows10 pyt

CentOS使用virtualenv搭建獨立的Python環境-python虛擬環境

all ron 設置環境變量 添加 pack 提示 不同版本 tool .sh 一、安裝python   可-編譯安裝;可-yum安裝 二、安裝virtualenv   yum源安裝:     yum install python-virtualenv     virtua

windows 下 Python 虛擬環境scrapy專案的搭建

       請先確定本機電腦已經安裝 python ,並且配置好環境變數。如果在 cmd 中使用pip命令提示不是內部命令的話,此處也需要配置環境變數,pip.exe一般在你python安裝路徑下面的Scripts目錄下, 在系統變數 path 中

知識點-GRequests非同步請求和 Virtualenv python虛擬環境搭建

##都是可以pip進行直接安裝 1.GRequests非同步請求(爬取更高效) import grequests urls = [ 'http://www.heroku.com', 'http://python-tablib.org',

pyenv + virtualenv 建立管理Python虛擬環境(Linux系統)

python開發環境配置 Python 2和Python 3之間存在著較大的差異,並且,由於各種原因導致了Python 2和Python 3的長期共存。在實際工作過程中,我們可能會同時用到Python 2和Python 3,因此,也需要經常在Python 2和Python 3之間進行來回

mac 下安裝python虛擬環境 virtualenv 虛擬環境管理器 virtualenvwrapper

轉自:http://blog.csdn.net/xianliangforshuyuan/article/details/70041012 有時候我們在開發中需要使用python2或者python3,所以我們需要建立一個虛擬的環境進行將兩個版本隔離出來,這裡我們