1. 程式人生 > >pyenv虛擬環境管理python多版本和軟體庫

pyenv虛擬環境管理python多版本和軟體庫

可能大家在日常工作中會遇到這麼個問題,現在基本的linux系統都是自帶老版本的python2.7.x版本,我又不想用老版本,但直接升級可能會出問題,或是依賴老版本的程式就執行不了,有沒辦法能安裝3.x新版本的?

答案是有的,請使用pyenv,可以支援管理多個python版本,任意使用。

其實官方於2019年底將不再提供支援了,截至倒計時還有6天:https://pythonclock.org/

那有人可能會問,那在一個系統下,不同的庫依賴不同的python版本,就比如說python2.x版本需要django1.0版本,python3.x版本需要django2.0版本,那這樣系統只能裝一個django版本,這又怎麼解決呢?

答案是有的,pyenv自帶的外掛pyenv-virtualenv,建立兩個虛擬環境,互相獨立,各不影響。

實驗環境:

linux系統:CentOS 7 x64

pyenv常用命令:

[python@localhost ~]$ pyenv install -l  //檢視可用的安裝版本
[python@localhost ~]$ pyenv install 3.6.9  //線上安裝python3.6.9版本
[python@localhost ~]$ pyenv virtualenv 3.6.9 py3  //建立虛擬環境,3.6.9為python版本,py3為別名
[python@localhost test]$ pyenv local 3.6.9  //進入目錄,設定或顯示本地python版本(本目錄有效)
[python@localhost test]$ pyenv global system  //設定或顯示全域性python版本
[python@localhost test]$ pyenv version  //顯示當前python版本
[python@localhost test]$ pyenv versions  //顯示可用的所有python版本
[python@localhost test]$ pyenv update  //更新pyenv
[python@localhost ~]$ pyenv virtualenvs  //檢視所有虛擬環境
[python@localhost ~]$ rm -fr ~/.pyenv  //解除安裝pyenv
[python@localhost ~]$ pyenv virtualenv-delete py3  //刪除虛擬環境

建立使用者名稱及密碼:
說明:不要用root賬戶,養成習慣

[root@localhost ~]$ useradd python
[root@localhost ~]$ su - python
[python@localhost ~]$ echo python | passwd python --stdin

安裝依賴元件:

[python@localhost ~]$ yum install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel
zlib-devel bzip2-devel git curl

安裝pyenv:

#方法1:線上安裝
[python@localhost ~]$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

#方法2:為避免受制牆限制而無法線上安裝,複製如下連結的shell指令碼到本地pyenv.sh:
https://github.com/pyenv/pyenv-installer/blob/master/bin/pyenv-installer

[python@localhost ~]$ touch pyenv.sh  //新建檔案,把上面的shell程式碼貼進來,儲存
[python@localhost ~]$ bash pyenv.sh

安裝完成後,按照提示,設定系統環境變數,在 '.bashrc' 增加如下程式碼:

[python@localhost ~]$ vim .bashrc 

#最下面,新增如下指令碼
export PATH="/home/python/.pyenv/bin:$PATH"  
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

重啟shell,使路徑更改生效:

[python@localhost ~]$ exec $SHELL 

提前在官方下載python安裝包並通過winSCP上傳到centos目錄下:

  • Python-3.6.9.tar.xz
  • Python-3.8.0.tar.xz
#在.pyenv目錄下建立cache目錄,已通過winSCP上傳好
[python@localhost ~]$ cd .pyenv
[python@localhost .pyenv]$ mkdir cache
[python@localhost cache]$ ll
總用量 34224
-rw-rw-r--. 1 python python 17212164 12月 15 01:56 Python-3.6.9.tar.xz
-rw-rw-r--. 1 python python 17829824 12月 15 01:57 Python-3.8.0.tar.xz

備註:如果直接通過'pyenv install 3.6.9 '去安裝,會很慢,因為要連線到國外。

開始安裝

[python@localhost pkg]$ pyenv install 3.6.9 -vvv  //-v 可以看到安裝詳細的過程
[python@localhost ~]$ pyenv install 3.8.0 -vvv  //-v 可以看到安裝詳細的過程

建立專案資料夾:

#舉個栗子:
 #1.Python目錄,使用python3.6.9版本
 #2.My_django目錄,使用python3.6.9版本
 #3.test目錄,使用python3.8.0版本

[python@localhost Python]$ mkdir -pv network/Python/
[python@localhost Python]$ mkdir -pv network/My_django/
[python@localhost Python]$ mkdir -pv network/test/

建立虛擬環境,效果如下:

#Python目錄:
[python@localhost ~]$ pyenv virtualenv 3.6.9 py3  //設定別名py3
[python@localhost Python]$ pyenv local py3
(py3) [python@localhost Python]$ pyenv version
py3 (set by /home/python/network/Python/.python-version)
(py3) [python@localhost Python]$    //左邊看到(py3)說明已在虛擬環境中,是獨立的

#My_django目錄:
[python@localhost ~]$ pyenv virtualenv 3.6.9 py369  //設定別名py369
[python@localhost My_django]$ pyenv local py369
(py369) [python@localhost My_django]$ pyenv version
py369 (set by /home/python/network/My_django/.python-version)
(py369) [python@localhost My_django]$

#test目錄:
[python@localhost ~]$ pyenv virtualenv 3.8.0 py380  //設定別名py380
[python@localhost test]$ pyenv local py380
(py380) [python@localhost test]$ pyenv version
py380 (set by /home/python/network/test/.python-version)
(py380) [python@localhost test]$

#驗證效果
  #在My_django虛擬環境下安裝pip install redis
  #其他虛擬目錄沒有redis
#My_django虛擬環境
(py369) [python@localhost My_django]$ pip list
Package    Version
---------- -------
pip        19.3.1 
redis      3.3.11 
setuptools 40.6.2
#Python虛擬環境
[python@localhost Python]$ pip list
Package    Version
---------- -------
pip        19.2.3 
setuptools 41.2.0 

說明:你可以在每個專案安裝所需要的軟體版本,都是獨立的,互不影響。

pyenv官方連結


如果喜歡的我的文章,歡迎關注我的公眾號:點滴技術,掃碼關注,不定期分享

相關推薦

pyenv虛擬環境管理python版本軟體

可能大家在日常工作中會遇到這麼個問題,現在基本的linux系統都是自帶老版本的python2.7.x版本,我又不想用老版本,但直接升級可能會出問題,或是依賴老版本的程式就執行不了,有沒辦法能安裝3.x新版本的? 答案是有的,請使用pyenv,可以支援管理多個python版本,任意使用。 其實官方於2019年底

虛擬環境解決python版本並行

一.安裝篇 1.本文作業系統為CentOS7 依賴包(安裝時可能還存在其他依賴包,結合報錯進行安裝) [[email protected] home]# yum install make build-essential libssl-dev zlib1g-dev libbz2-dev libr

ubuntu下使用Anaconda應用:建立虛擬環境實現python不同版本切換、科學計算工具包安裝

Anaconda的安裝 Anaconda的下載頁參見官網下載,Linux、Mac、Windows均支援。 安裝時,會發現有兩個不同版本的Anaconda,分別對應Python 2.7和Python 3.5,兩個版本其實除了這點區別外其他都一樣。後面我們會看到,安裝哪個版本並不本質,因為通過環境管理,我們可以

Python版本pip安裝的問題

引 機器上總是會有Python2.7的版本和Python3.x的版本,今天接觸到一臺伺服器上面有Python2.7和Python3.4,想在Python3.4下安裝一個TensorFlow,但不管怎麼裝都只能裝到Python2.7上,特別頭疼,後來發現是因為不

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

Python linux版本共存以及虛擬環境管理

此時需要在系統中安裝多個Python,但又不能影響系統自帶的Python,即需要實現Python的多版本共存。 pyenv 就是這樣一個Python版本管理器。 安裝pyenv $ git clone git://github.com/yyuu/pyenv

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版本管理-pyenv

https://www.cnblogs.com/saneri/p/7642316.html   經常遇到這樣的情況: 系統自帶的Python是2.x,自己需要Python 3.x,此時需要在系統中安裝多個Python,但又不能影響系統自帶的Python,即需要實現Python的多版本共存,py

Python版本共存 建立虛擬環境及安裝opencv,tensorflow

1. Python多版本共存 首先將需要的Python版本都安裝上,不同Python版本安裝的時候會建立不同的資料夾,裝好以後就去各個版本的Python資料夾下將Python.exe複製一份然後改個名字,比如python35.exe,python37.exe。然

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

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

Python版本管理器-pyenv 介紹及部署記錄

一. pyenv簡單介紹 由於python的各種優點,當前學習及使用python的人越來越多, 學習python有一個不容忽視的問題就是python的版本問題! 到現在為止,python的版本有很多,但是問題在於python2與python3的區別。python3的對一些模組進行了改變,導致了python

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

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

python版本管理工具pyenv的安裝

安裝方法    1、yum install git -y    2、yum install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel -

Python版本管理軟體pyenv的安裝應用及pip的使用講解

原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本宣告。否則將追究法律責任。 近期Comyn老師的Python視訊推出之後,大家一直在討論者pyenv這個軟體的應用問

python版本虛擬環境

這篇純python技術文章,我自己平時也會用到,在此記錄一下。 ## 為什麼會用到多個Python版本? 用macOS和Ubutntu的同學都知道系統預設安裝的`Python2.7.x`,然後,我們平時python開發用的python3,所以,需要額外安裝一個`Python3.x`的版本。 之前,我想是

python版本以及各種包管理

eight curl border roo python space 查看 集中 title python多版本以及各種包管理python包管理各個版本 python版本管理 由於Python有2.x和3.x兩個大的版本,而且每一個工程建立所用的各種包的版本也不

Mac下使用Pyenv實現python版本共存與切換

macmac自帶的python2.7不能刪除,因為很多系統模塊依賴,所以我們使用pyenv來安裝python3.6版本,這樣就可以並存。1、安裝OS X的套件管理器(類似ubuntu的apt-get),網址如下:http://brew.sh/index_zh-cn.html或者直接用終端命令安裝/usr/bi

Linux下python版本環境介紹

package sta app total shel ons 版本 tis openssl 一、python多版本配置說明 安裝python相關依賴 [root@centos6 ~]# yum install -y gcc make patch gdbm-devel o

ubuntu 配置 java jdk1.8 環境,增加版本 jdk 切換方法

其它 web oracle -i serve server pre jdk6 runtime 一、安裝java jdk1.8 1.添加軟件源 sudo add-apt-repository ppa:webupd8team/java 2.更新軟件源 sudo apt-g

python版本切換使用

anconda多環境多版本配置 下面僅展示在windows環境下配置和使用anconda來管理多個python環境 1、首先檢查conda是否被安裝 conda --version 2、升級當前版本的conda conda update conda 3、比如我們現