1. 程式人生 > >Mac多Python版本共存,多個獨立Python開發環境切換。

Mac多Python版本共存,多個獨立Python開發環境切換。

一、安裝配置pyenv

經常遇到這樣的情況:

  • 系統自帶的Python是2.x,自己需要Python 3.x,測試嚐鮮;
  • 系統是2.6.x,開發環境是2.7.x
  • 由於Mac機器系統保護的原因,預設的Python中無法對PIP一些包升級,需要組建新的Python環境。
  • 此時需要在系統中安裝多個Python,但又不能影響系統自帶的Python,即需要實現Python的多版本共存。pyenv就是這樣一個Python版本管理器。

1、安裝pyenv

brew install pyenv

2、根據提示需要新增

if which pyenv >/dev/null;theneval"$(pyenv init -)"
;fiexport PYENV_ROOT=/usr/local/var/pyenv

這裡注意了,如果使用的zsh,務必不要在zshrc配置裡面的外掛開啟pyenv。會導致終端無限迴圈退出,只需要在你的zshrc結尾處追加上面兩行就行了。筆者親測。

3、檢視當前啟用的是那個版本的Python

pyenv version

4、檢視已經安裝了那些版本的Python

pyenv versions

5、安裝指定版本的Python

pyenv install 3.5.0#安裝完成後必須rehash
pyenv rehash

6、切換和使用指定的版本Python版本有3種方法:

λ~/ pyenv
pyenv 20151006
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    列出所有pyenv可用的命令
   local       設定或顯示本地應用程式特定的Python版本
   global      設定或顯示系統全域性的Python版本
   shell       設定或顯示shell外殼的Python版本
   install     使用python-build安裝指定Python版本
   uninstall   解除安裝已經安裝的Python
   rehash      重新整理 pyenv shims (安裝之後執行這個)
   version     檢視當前使用的版本
   versions    列出已經安裝的Python版本,當前啟用版本用*號標註
   which       顯示的完整路徑的可執行檔案
   whence      列出包含給定的可執行所有的Python版本

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https:/
/github.com/yyuu/pyenv#readme

特別建議:

系統全域性用系統預設的Python比較好,不建議直接對其操作
pyenv global system
local進行指定版本切換,一般開發環境使用。
pyenv local2.7.10
對當前使用者的臨時設定Python版本,退出後失效
pyenv shell 3.5.0
取消某版本切換
pyenv local3.5.0--unset

優先順序關係:shell——local——global

二、利用virtualenv和Virtaulenvwrapper管理虛擬Python環境

virtualenv用於建立獨立的Python環境,多個Python相互獨立,互不影響,它能夠:

  1. 在沒有許可權的情況下安裝新套件
  2. 不同應用可以使用不同的套件版本
  3. 套件升級不影響其他應用

Virtaulenvwrapper是virtualenv的擴充套件包,用於更方便管理虛擬環境,它可以做:

  1. 將所有虛擬環境整合在一個目錄下
  2. 管理(新增,刪除,複製)虛擬環境
  3. 切換虛擬環境

1、安裝和使用方法

#安裝
pip install virtualenv
pip install virtualenvwrapper
#建立虛擬環境
mkvirtualenv [虛擬環境名稱]

此時還不能使用virtualenvwrapper,預設virtualenvwrapper安裝在/usr/local/bin下面,實際上你需要執行virtualenvwrapper.sh檔案才行,先別急,開啟這個檔案看看,裡面有安裝步驟,我們照著操作把環境設定好。

如果你使用的bash或者zsh

#建立目錄用來存放虛擬環境
mkdir $HOME/.virtualenvs
#在. bash_profile 或者 .zshrc 追加兩行export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
執行: 
source ~/.bashrc
source ~/.zshrc
此時virtualenvwrapper就可以使用了。

2、建立虛擬環境例如:

#在當前的環境的Python版本下建立名稱為py3dev的虛擬環境。
mkvirtualenv py3dev

預設情況下,虛擬環境會依賴系統環境中的site packages,就是說系統中已經安裝好的第三方package也會安裝在虛擬環境中,如果不想依賴這些package,那麼可以加上引數 –no-site-packages建立虛擬環境

例如:

mkvirtualenv --no-site-packages [虛擬環境名稱]
mkvirtualenv --no-site-packages py3dev

3、檢視建立的虛擬環境:

λ~/ lsvirtualenv
py2dev
======


py3dev
======


λ ~/ workon
py2dev
py3dev

4、啟動某虛擬環境:

works [虛擬環境名稱]
workon py3dev

5、刪除某個虛擬環境:

rmvirtualenv [虛擬環境名稱]
rmvirtualenv py3dev

6、刪除某個虛擬環境需要先退出這個環境

deactivate

三、融合 pyenv、virtualenv、Virtaulenvwrapper 管理Python版本和虛擬環境

如何對Python2.7.10和Python3.5.0版本分別建立虛擬環境?

有這三個工具其實非常簡單,主要是確保環境切換成功後在建立虛擬環境。

#確保切換成功,我建議 source .zshrc 一下在切換#安裝全新的Python2.7.10版本
pyenv install 2.7.10
pyenv rehash

#切換到剛安裝的這個版本
pyenv local2.7.10#確保切換成功
source .zshrc
#驗證一下版本,pip發現裡面包很少
pip list
#驗證版本
python -V
#務必在這個新的2.7.10中安裝
pip install virtualenv
pip install virtualenvwrapper
#務必
source .zshrc
#建立2.7.10的開發環境
mkvirtualenv py2dev

#建立完某版本的開發環境後務必退出,當前虛擬環境,不然就是虛擬環境中在建立了。
deactivate
#退出2.7.10環境
pyenv local--unset 2.7.10
source .zshrc

3.5.0的虛擬環境建立也是一樣,因此驗證2.7.10和3.5.0的虛擬環境

(py3dev)☁~  deactivate
~  workon py2dev
(py2dev)☁~  python -V
Python2.7.10(py2dev)☁~  deactivate
~  workon py3dev
(py3dev)☁~  python -V
Python3.5.0(py3dev)☁~  deactivate
~

至今沒找到切換Python版本的時候要載入 source .zshrc。經過無數次試驗,結果是務必這麼幹,不知道為什麼。

#愉快無痛升級,一鍵升級所有PIP包
pip list --outdated | grep '^[a-z]* ('| cut -d " "-f 1| xargs pip install -U

相關推薦

MacPython版本共存獨立Python開發環境切換

一、安裝配置pyenv 經常遇到這樣的情況: 系統自帶的Python是2.x,自己需要Python 3.x,測試嚐鮮;系統是2.6.x,開發環境是2.7.x由於Mac機器系統保護的原因,預設的Python中無法對PIP一些包升級,需要組建新的Python環境。此時需要在

Mac安裝anaconda後兩python版本共存在終端pip無法為各自python版本倒入模組的解決辦法

問題描述:使用anaconda來管理包,十分方便,也可以到達使得python2和python3共存的目的,但當匯入anaconda以外的包時,可能會產生一些問題,在近期學習中,由於會用到scikit-learn模組,此模組為python2.7版本的模組,在使用終端通過pip

[轉]windows下python版本共存,pip使用

啟動 article xxx box 似的 而是 就是 3.3 代碼 windows下多個python版本共存,pip使用 2017年09月13日 17:21:30 閱讀數:2574 一、同時裝了Python3和Python2,怎麽區分 了解pytho

linuxpython 版本共存不同版本PIP如何使用

序言:             相信大家,在工作中都會遇到這樣的問題,有的程式開始限定是用python那個版本,或者說我們在公用伺服器上面,不想別人更改我們的環境,今天給大家介紹怎麼來在home目錄下面建一個自己的目錄,建一個屬於自己的庫。 1:python的安裝。  

linuxpython版本共存切換方法

python命令通常存在 /usr/bin/python和/usr/local/bin/python下面,一般是符號連結,優先使用後者, 如果有2.6和2.7兩個版本,並且 /usr/bin/python --> /usr/bin/python2.6 /usr/l

iis7配置fastcgi完美支援php版本共存完美解決php環境變數問題

1、在全域性點選fastcgi 新增php的執行路徑 3、編輯設定,點選環境變數這部分 點選新增 PHPRC,name填寫PHPRC,value值指定對應php路徑 PHP_FCGI_MAX_REQUESTS,名稱填寫PHP_FCGI_MAX_REQUES

Pycharm切換python版本以及刪除不需要的版本

PyCharm是python的一個強大工具軟體,它既可以執行Python2.7也可以執行Python3.7,但這些是有前提的,電腦上必須同時裝有anaconda2和3兩個版本(如何安裝可自行百度,相關資源網上也有)。那麼如何刪除匯入的多於版本及更換python版本1.開啟Py

Linux 下php 版本共存安裝

git span can tar yum sta acc pen hang 我們知道apache + php 是比較經典的搭配,但是兩者都會升版,咱家就經歷過兩次php 升版。 一般就是重新下載新版本的php ,然後編譯安裝。這一切都很繁瑣。有沒有自動安裝工具

CentOS 6.x安裝GCC版本cmake的安裝與使用

https 查看信息 faq stat 處理 文件夾 fonts 分享 languages 操作系統:CentOS release 6.5 (Final) 當前gc

安裝兩版本python安裝包後安裝的python程序打開時閃退

bsp 卸載 雙擊 python的安裝 環境變量 系統默認 電腦 3.6 路徑 1.環境變量的問題 (Win7)右鍵打開“計算機”的屬性設置→高級系統設置→環境變量。 在系統變量中的path中,編輯,在末尾加入Python的安裝路徑“F:\Python27”, 路徑與

安裝版本 cuda 版本之間切換

1. cuda 的下載與安裝方法選擇 到 CUDA Toolkit Download 下載所需版本,以 cuda_9.0.176_384.81_linux.run為例: 建議選擇使用 .run 檔案安裝,因為使用 .deb可能會將已經安裝的較新的顯示卡驅動替換。 2. c

通過計算樣式封裝動畫例項—條動畫結合引數變化的動畫

要點: 1.原來想寫animate()的多型形式的,寫到一半想起來,js不需要在宣告變數時就宣告資料型別,無法完成多型的性質,可以通過曲線方法完成多型效果,以後再說。 2.getComputerStyle計算樣式屬性,可以將setoff系列沒能獲取到的樣式屬性獲取出來,g

執行緒問題執行緒輪流進行每個執行緒進行n次操作共執行n*n*3次操作本程式碼用三軍攻擊做演示通俗易懂

package com.yyj.zxy; public class SanJunFight { /** * 三隻部隊輪流上戰場,每隻部隊在戰場上每一輪只能進行n次攻擊; * 合計攻擊300次則停止攻擊; */ private static int coun

【Java】JDK9 內部探索——版本架構版本 jar 包及其他

JShell 因為已經有很多人在談論 Jigsaw,因此在第一部分我們先跳過不去講它。在這一部分我們將會照本宣科地拿 JShell 做些事情, 這是 Java 的一個全新的 REPL (說到它能做的事情,例如你在一個地方敲入了 Java 程式碼,有了它就可以馬上把程式碼

PowerDesigner實現版本控制人協作

配置資料來源 Database –> Configure Connections –> Connection Profiles 新增一個 JDBC connection URL 記得帶字元編碼,不然上傳到repository會出現亂碼 環境

python svm演算法程序運算算不出(似乎是陷入了死迴圈)

在調節核函式是poly的多分類支援向量機degree引數時,樣本資料僅1700餘個,degree較小時測試效果較差。當degree選擇到8時,分類器表現良好,試圖選擇更大的degree。但是計算時間過長(我上了兩節課回來還沒算完)。於是採用多程序技術,但是詭異的

潛移默化學會WPF(難點控件treeview)--改造TreeView(CheckBox選擇版本遞歸綁定數據 - AYUI框架 - 博客園

事件 名稱 怎麽 應用 html sele foreach 很快 迅雷 原文:潛移默化學會WPF(難點控件treeview)--改造TreeView(CheckBox多選擇版本),遞歸綁定數據 - AYUI框架 - 博客園 目前自己對treeview的感慨很多 今

50k大牛告訴你Python怎麼學10特性帶你快速瞭解python

前言 如果你是一個正在學習python的c、c++ or java程式設計師,又或者你是剛剛接觸python,剛剛開始學習python,那麼,請認真看完這10個語言特性,你會受益匪淺的。 新增小編python學習群865597862即可領取2018最新全套python零基礎入門

獻給正在學習python的你10最受歡迎的Python開源框架

如果你正在學習python,那麼這10個開源框架,你可千萬別錯過,這些框架包括事件I/O,OLAP,Web開發,高效能網路通訊,測試,爬蟲等。雖說不上是全都有,但也足夠滿足你了。     Python 是一個高層次的結合瞭解釋性、編譯性、互動性和麵向物件的指令碼

Mybatis-plus表關聯查詢表分頁查詢

學習plus真的覺得寫程式碼真的越來越舒服了。昨天開始接觸吧,只要學會了多表關聯查詢。plus就能隨意搭配使用了。 關於怎麼搭建的就自行了去研究了哦。這裡直接進入主題。 我用的是springboot+mybatis-plus。新專案我打算以後都是這樣了。   配置一個分頁外掛! im