Linux中python的開發環境配置(虛擬環境)

1 pyenv

pyenv是一個Python版本管理工具,它能夠進行全局的Python版本切換,也可以為單個項目提供對應的Python版本。使用pyenv以后,可以在服務器上安裝多個不同的Python版本,也可以安裝不同的Python實現。不同Python版本之間的切換也非常簡單。pyenv官方地址https://github.com/pyenv/pyenv-installer

  • 安裝pyenv

#1 安裝pyenv,在命令行下鍵入:
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
?https://www.linuxidc.com/Linux/2018-05/152610.htm
#默認安裝到當前用戶的工作目錄下的.pyenv,我們可以查看一下
$ cd ~
$ ls -la
?
#如果安裝過git,也可以使用以下安裝方式安裝$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
?
#2 將安裝路徑寫入~/.bashrc將以下三條語句寫入 ~/.bashrc ?
export PATH="/home/zhu/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
?
$ source  ~/.bashrc  #配置立刻生效
?
$ echo $PATH
#如果路徑第一個結尾是shims則表示成功
/home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
?
?
?
#3 更新一下
$ pyenv rehash
  • 使用pyenv

    #1.查看pyenv當前支持哪些Python版本
    python@ubuntu:~$ pyenv install --list
    Available versions:2.1.32.2.32.3.7...#2.列出pyenv中所有可用的python版本
    python@ubuntu:~$ pyenv versionssystem3.5.4
    * 3.6.4 (set by /home/python/.pyenv/version)  # *表示當前使用的3.6.4版本
    ?
    #3.選擇指定的python版本
    python@ubuntu:~$ pyenv global 3.5.4  #設置指定的版本
    python@ubuntu:~$ python ?
    Python 3.5.4 (default, Mar 29 2018, 11:02:03)  #已經切換到了3.5.4
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    切換Python版本以后,與版本相關的依賴也會一起切換。因此,我們不用擔心不同的版本在系統中是否會相互干擾。
    ?
    #4. 刪除指定python版本
    python@ubuntu:~$ pyenv uninstall 3.5.4
    pyenv: remove /home/python/.pyenv/versions/3.5.4? y
    python@ubuntu:~$ pyenv versionssystem
    * 3.6.4 (set by /home/python/.pyenv/version)
  • 安裝python

    #1.在安裝python之前,我們必須要安裝python所需要的依賴包,這個必須要安裝, 否則安裝會失敗的:
    $ sudo apt-get install libc6-dev gcc
    $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
    ?
    #2. 安裝python
    $ pyenv install 3.6.4 -v ?#-v 以日志模式顯示安裝過程
    #因為pyenv會自動到github上下載,速度超慢,所以一般會選擇使用curl或者wget下載到~/.pyenv/cache下,然后再用pyenv安裝,下面是可選的安裝模式
    $ cd ~/.pyenv
    $ sudo mkdir cache
    $ wget -c http://mirrors.sohu.com/python/3.6.4/Python-3.6.4.tar.xz -P  ~/.pyenv/cache/
    $ pyenv install 3.6.4 -v
    ?
    #3.更新pyenv數據庫$ pyenv rehash
    ?
    #4.列出所安裝的python版本$ pyenv versions
    ?
    #5.切換python版本
    $ pyenv  global 3.6.4 ? #全局切換
    $ pyenv local 2.7.9 #和特定目錄綁定
    ?
    #6.驗證版本$ python
  • 注意:

    • 使用pyenv管理python,必須是用pyenv安裝的python才行,系統以前有的,需要重新用pyenv安裝

    • 使用pip安裝第三方模塊時會安裝到~/.pyenv/versions/xxx下,不會和系統模塊發生沖突;

    • 使用pip安裝模塊后,可能需要執行pyenv rehash更新數據庫。

2 virtualenv

virtualenv本身是一個獨立的項目,用以隔離不同項目的工作環境。例如,項目A和項目B都是使用Python 2.7.13,但是,項目A需要使用Flask 0.8版本,項目B需要使用Flask 0.9版本。我們只要組合pyenv和virtualenv這兩個工具,就能夠構造Python和第三方庫的任意版本組合,擁有了很好的靈活性,也避免了項目之間的相互干擾。

virtualenv本身是一個獨立的工具,用戶可以不使用pyenv單獨使用virtualenv。但是,如果你使用了pyenv,就需要安裝pyenv-virtualenv插件而不是virtualenv軟件來使用virtualenv的功能。

項目主頁:https://github.com/yyuu/pyenv-virtualenv

  • 安裝virtualenv(可選)

    如果是python3以上,安裝完python就已經安裝了virtualenv,就不用安裝了

    #安裝
    $ pip install virtualenv
    ?
    #或者,如果提示版本不匹配,可以使用--upgrade參數
    $ sudo pip install --upgrade virtualenv
  • 使用virtualenv創建項目的虛擬環境

一個項目創建一個virtualenv的虛擬環境,在這個環境中,可以用pip安裝項目所需的庫,不會影響其他項目。切記一個項目一個虛擬環境,否則可能會發生莫名的錯誤。

#1.首先創建項目目錄
$ sudo mkdir -p myproject/blog
cd myproject/blog
?
#2.創建項目的虛擬環境
#用法:pyenv virtualenv python版本號 虛擬環境名
$ pyenv virtualenv 3.6.4 env36 ? #注意版本號必須是已經安裝的,否則會報錯
?
#3.切換到虛擬環境
python@ubuntu:/myproject/blog$ pyenv activate env36
?
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
?
(env36) python@ubuntu:/myproject/blog$  # (env36)表示該項目處于虛擬環境中
?
#驗證
(env36) python@ubuntu:/myproject/blog$ python
Python 3.6.4 (default, Mar 29 2018, 10:33:37) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
?
#4. 切出虛擬環境
(env36) python@ubuntu:/myproject/blog$ pyenv deactivate env36
  • 使用pip下載庫

使用pip下載,會從國外的網站下載,速度超慢,所以要切換pip到國內的鏡像源,一般會用psm切換pip的源

  • 1.安裝一個軟件psm

    (bbs36)python@ubuntu:/myproject/blog$ pip install psm
    [sudo] python 的密碼: 
    正在讀取軟件包列表... 完成
    正在分析軟件包的依賴關系樹 ? ? ? 
    正在讀取狀態信息... 完成 ? ? ? 
    E: 無法定位軟件包 psm

    ?

  • 2.psm的使用 以下操作需要在虛擬環境外進行,選擇好鏡像源后在進入虛擬環境

    #1.查看列出pip的鏡像源
    (bbs36)python@ubuntu:/myproject/blog$ psm ls
    ?
    pypi     https://pypi.python.org/simple/
    douban   http://pypi.douban.com/simple/
    aliyun   http://mirrors.aliyun.com/pypi/simple/
    ?
    #查看當前的鏡像源
    (bbs36)python@ubuntu:/myproject/blog$ psm show
    ?
    Current source is douban
    ?
    #2.選擇指定的鏡像源
    ?
    (bbs36)python@ubuntu:/myproject/blog$ psm use douban
    ?
    Source is changed to douban.
    ?
    #3 使用pip下載庫
    (bbs36) python@ubuntu:/myproject/blog$ pip install pymysql

?

virtualenvwrapper:virtualenv的擴展包

?

安裝

安裝很簡單,使用easy_install進行安裝

sudo easy_install virtualenvwrapper

此時還不能使用virtualenvwrapper,默認virtualenvwrapper安裝在/usr/local/bin下面,實際上你需要運行virtualenvwrapper.sh文件才行,這個文件里面的注釋部分有安裝步驟,我們照著操作把環境設置好。

1.創建目錄用來存放虛擬環境

mkdir $HOME/.virtualenvs

2.在~/.bashrc中添加

export WORKON_HOME=$HOME/.virtualenvs

3.在~/.bashrc中添加

source /usr/local/bin/virtualenvwrapper.sh

4.執行

source ~/.bashrc

此時virtualenvwrapper就可以使用了

使用

簡單的介紹下使用:
列出虛擬環境列表

workon

也可以使用

lsvirtualenv

新建虛擬環境

mkvirtualenv [虛擬環境名稱]

啟動/切換虛擬環境

workon [虛擬環境名稱]

刪除虛擬環境

rmvirtualenv [虛擬環境名稱]

離開虛擬環境

deactivate

?

總結:

1.?? virtualenv?? -p /usr/bin/python3? 虛擬環境

?激活:source 虛擬環境/bin/activate

?退出虛擬環境: deactivate

?

2.? virtualenvwrapper 虛擬環境 的升級版

?

配置:.bashrc文件? (當前用戶家目錄cd ~ ,)

????????????? .bashrc_profile (阿里服務器配置文件名)

……

保存 source .bashrc

命令:

mkvirtualenv -p /usr/bin/python3 shopping:創建虛擬環境 shopping

workon shopping: 工作在 online環境 或 從其它環境切換到 shopping 環境

deactivate: 退出終端環境

rmvirtualenv 虛擬環境的名字

?

3. 可以使用此方式:

sudo apt-get install python3-venv

python3 -m venv? 虛擬環境

source? 虛擬環境/bin/activate

退出: deactivate

?

?

- 注意:

? - 使用pyenv管理python,必須是用pyenv安裝的python才行,系統以前有的,需要重新用pyenv安裝

? - 使用pip安裝第三方模塊時會安裝到~/.pyenv/versions/xxx下,不會和系統模塊發生沖突;

? - 使用pip安裝模塊后,可能需要執行pyenv rehash更新數據庫。

?

export PATH="$HOME/.pyenv/bin:$PATH"

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

?

?

source .bashrc

?

pyenv update?? 更新

?

pyenv install –list

?

強調:原生python3.6?? python2.7? python3.7? 操作系統

?

安裝對應版本的python

?

pyenv? install? 版本號

?

pyenv? versions? 查看可以管理的版本有哪些

python 3.7.0

python 3.6.8

python 2.7.5

python 3.7.1

?

使用版本號:

pyenv? global?? 3.6.8

?

使用3.6.8設置虛擬環境:

pyenv? virtualenv 3.6.8? 虛擬環境

?

進入虛擬環境:

pyenv??? activate? 虛擬環境名字

略微有一點亂.

退出:

pyenv deactivate? 虛擬環境名字

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456527.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456527.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456527.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第一個沖刺周期-第三天

一、先把數據庫弄好,然后連接上,寫一個測試用例,看看能不能調用數據, 增刪改查是否正確,可以了的話,這一部分就結束了 二、 然后去寫UI層,先寫XML,把界面效果做出來 三、 然后寫UI…

特征工程

上周參加了學校的數據挖掘競賽,總的來說,在還需要人工干預的機器學習相關的任務中,主要解決兩個問題:(1)如何將原始的數據處理成合格的數據輸入(2)如何獲得輸入數據中的規律。第一個…

Linux下快速安裝MySQL教程

轉自:https://blog.csdn.net/sl1992/article/details/53634674 目錄:前言:1.執行yum install mysql-server進行安裝2.輸入y進行確認3.安裝成功4.查看MySQL是否啟動5.啟動MySQL6.查看是否運行7.設置開機啟動MySQL8.創建MySQL管理員root9.登錄M…

SpringMVC實戰(注解)

1.前言 前面幾篇介紹了SpringMVC中的控制器以及視圖之間的映射方式,這篇來解說一下SpringMVC中的注解,通過注解能夠非常方便的訪問到控制器中的某個方法. 2.配置文件配置 2.1 注解驅動,配置掃描器 首先須要在SpringMVC中的核心文件里指定注解驅動,詳細例如以下: <?xml vers…

UIView類繪圖出現錯誤提示

一:問題: Jan 16 15:49:53 CUBOT Band Ⅲ[2082] <Error>: CGContextSetLineWidth: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable. Jan 16 15:49:53 CUBOT Band Ⅲ[2082] <Error>: CGCo…

Hbase2.0版本安裝教程

目錄&#xff1a;前言&#xff1a;1. 上傳2. 解壓3. 重命名4. 修改環境變量5. 修改配置文件6. 把hadoop的hdfs-site.xml和core-site.xml 放到hbase/conf下7. 發送到其他機器8. 啟動9. 查看總結&#xff1a; 目錄&#xff1a; 前言&#xff1a; 最近由于工作需要又把HBase重裝…

MySQL8.0版本和5.7通過Navicat遠程連接

首先在數據庫創建好連接的用戶 進入mysql服務器終端&#xff1a; 命令窗口終端&#xff1a; mysql -u用戶名 -p密碼 sudo mysql -uroot -p 創建用戶部分-- 使用mysql 數據庫 USE mysql&#xff1b; -- 為mysql創建用戶&#xff1a;root1 密碼為&#xff1a;root1 …

HUE配置文件hue.ini 的zookeeper模塊詳解(圖文詳解)(分HA集群)

不多說&#xff0c;直接上干貨&#xff01; 我的集群機器情況是 bigdatamaster&#xff08;192.168.80.10&#xff09;、bigdataslave1&#xff08;192.168.80.11&#xff09;和bigdataslave2&#xff08;192.168.80.12&#xff09; 然后&#xff0c;安裝目錄是在/home/hadoop/…

CF #366(div.2) C 模擬,思維

CF #366(div.2) C. Thor 題意&#xff1a;一個手機n個聯系人&#xff0c;有q個操作。每次給出ty和ai&#xff0c;如ty1&#xff0c;表示收到ai的一條信息&#xff1b;如ty2&#xff0c;表示將ai發的信息都看掉&#xff1b;如ty3&#xff0c;表示將第1條到第ai條信息都看掉…

MySQL基本指令匯總

創建數據庫&#xff1a; create database 數據庫名字; 刪除數據庫: drop database 數據庫名字; 查看數據庫: show databases; 切換數據庫: use databasename; select database(); Create table 表名&#xff08;列名 數據類型 [約束]&#xff0c;列名 數據類型 [約束]&a…

linux命令行在任意目錄下啟動任意的腳本的方法

目錄&#xff1a;前言&#xff1a;1、直接在命令行中設置PATH2、在profile中設置PATH3、在當前用戶的profile中設置PATH 目錄&#xff1a; 前言&#xff1a; 這應該算是一個常識吧&#xff0c;但是對于許多像我們這樣的新手來說&#xff0c;一旦你出點小差錯&#xff0c;整個…

阿里云centos 安裝和配置 DokuWiki

DokuWiki 是一個開源的 wiki 項目&#xff0c; 可方便進行知識和內容的管理和分享&#xff0c;不用安裝數據庫&#xff0c;內置權限管理&#xff0c;書寫直觀方便&#xff0c;有大量的插件支持。特別適用于企業內部的內容和知識管理&#xff0c;只允許內部員工編輯和查閱的場景…

python-爬蟲

網絡爬蟲&#xff08;又被稱為網頁蜘蛛&#xff0c;網絡機器人&#xff0c;在FOAF社區中間&#xff0c;更經常的稱為網頁追逐者&#xff09;&#xff0c;是一種按照一定的規則&#xff0c;自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬…

MySQL5.7升級到8.0 之后,配合ubantu18.04遇到的常規問題以及非常規問題的解決方案

從MySQL5.7升級到8.0后首先會發現在創建用戶和授權大大不同&#xff1b;其次還有更多常規問題以及非常規問題的解決方案 寫本篇博客記錄踩過的坑 MySQL8.0配合ubantu18.04 一、創建用戶和授權 在mysql8.0創建用戶和授權和之前不太一樣了&#xff0c;其實嚴格上來講&#xf…

機器學習之數理統計與參數估計的相關知識總結

文章目錄目錄&#xff1a;1、知道期望/方差/偏度/峰度&#xff0c;獨立和不相關等概念是什么。2、契比雪夫不等式3、大數定理/中心極限定理4、伯努利定理5、矩估計6、最大似然估計7、協方差和相關系數目錄&#xff1a; 1、知道期望/方差/偏度/峰度&#xff0c;獨立和不相關等概…

Angular屬性型指令

2019獨角獸企業重金招聘Python工程師標準>>> 屬性型指令 — 改變元素、組件或其它指令的外觀和行為的指令 屬性性指令的創建步驟如下&#xff1a; import語句需要從 Angular 的core庫導入的一些符號。 Directive提供Directive裝飾器功能。 ElementRef注入到指令構造…

beeline連接hiveserver2報錯:User: root is not allowed to impersonate root

最近在生產中搭建HA機制的集群&#xff0c;碰到不少坑&#xff0c;會在接下來的時間里好好總結下&#xff0c;先說下遇到的一個大坑。我們的需求是&#xff1a;希望通過hive的thrift服務來實現跨語言訪問Hive數據倉庫。但是第一步&#xff0c;你得需要在節點中打通服務器端&…

局域網 兩臺電腦共享 密碼關閉

轉載于:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/6832463.html

MySQL查詢select語句詳解

1.查詢記錄 select*from 表名 [where 條件];eg:select*from students;//查詢 students 表中所有記錄&#xff0c;所有字段的值都顯示出來select field1,field2,...fieldn... from 表名 [where 條件];eg:select id,name,age from students;//查詢 students 表中所有記錄, 只顯示…

SVN使用規范

轉載于:https://www.cnblogs.com/shenxiaolin/p/6296880.html