python多版本以及各種包管理


python多版本以及各種包管理

python版本管理

由於Python有2.x和3.x兩個大的版本,而且每一個工程建立所用的各種包的版本也不盡相同(如flask1.x),這使得若干個工程開發同一台主機上完成比較麻煩(工程不是由一個人來完成,不同人的配置版本也不盡相同,為了所有開發人員能成功開發,就必須使得開發環境的一致,而一個人可能參與若干個工程開發)。
pyenv 管理 Python 的版本。
virtualenv 管理 Python 工程中的包的版本(或者說 Python 項目的執行環境)管理。
不過現在pyenv-virtualenv集成了virtualenv功能,總體上,使用pyenv即可。
anaconda 和virtualenv整體差不多,不過它更加集中於科學計算方面的內容,所以許多科學計算包可以通過anaconda來進行管理。
總之,pyenv管理大的環境與版本之間的轉換。anaconda可以在這個前提之下,進行小版本轉換。
pyenv的路徑:~/.pyenv/versions/

python版本和包的管理

預備安裝的准備條件

  1. sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ 
  2. libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ 
  3. xz-utils tk-dev 

pyenv安裝

利用pyenv管理系統版本,而利用anaconda管理第三方庫。

  • (1) 選擇安裝到$HOME/.pyenv目錄(但你可以在某處安裝其他)。
    git clone https://github.com/yyuu/pyenv.git ~/.pyenv
  • (2)配置環境變量
    echo ‘export PYENV_ROOT="$HOME/.pyenv"’ >> ~/.bashrc
    echo ‘export PATH="$PYENV_ROOT/bin:$PATH"’ >> ~/.bashrc
  • (3)添加pyenv初始化到你的shell
    echo ‘eval “$(pyenv init -)”’ >> ~/.bashrc
    source ~/.bashrc   source bashrc必須重開一個shell窗口才生效
  1. git clone https://github.com/yyuu/pyenv.git ~/.pyenv 
  2. echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile 
  3. echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile 
  4. echo 'eval "$(pyenv init -)"' >> ~/.bash_profile 
  5. source ~/.bash_profile 

pyenv使用命令

  • 展示python的某個版本,anaconda-2支持python2.6和2.7  anaconda-3支持python3.3和3.4
  1. hpc@hpc:~$ pyenv install --list 
  2. Available versions: 
  3. 2.1.3 
  4. 2.2.3 
  5. 2.3.7 
  6. 2.4 
  7. 2.4.1 
  8. 2.4.2 
  9. 2.4.3 
  10. 2.4.4 
  11. 2.4.5 
  • 安裝和卸載python的某個版本
  1. pyenv install -v 2.7.5 
  2. pyenv uninstall 2.7.5 
  3. rm -rf ~/.pyenv/versions/2.7.5 ##移除版本2.7.5 
  • 查看並切換版本
  1. #tab鍵可以進行補全,通過versions命令查看大體,細節tab補全 
  2. pyenv versions 
  3. pyenv local 2.7.5 ##局部文件下版本切換 
  4. pyenv global 3.3.5   ##全局系統下的版本切換 

Anaconda科學計算包的使用:

  • 通過pyenv安裝Anaconda科學計算包
  1. pyenv install anaconda #pyenv install --list 查看版本 install之時通過tab進行補全 

Anaconda的一些使用說明:

  • 查看當前系統下的環境
  1. conda info -e 
  • 查看已經安裝的包
  1. conda list 
  • 想要運行,必須先創造環境與管理環境中package
  1. conda create -n env_name 
  2.  
  3. # 查看某個指定環境的已安裝包 
  4. conda list -n python34 
  5.  
  6. # 查找package信息 
  7. conda search numpy 
  8.  
  9. # 安裝package 
  10. conda install -n python34 numpy 
  11. # 如果不用-n指定環境名稱,則被安裝在當前活躍環境 
  12. # 也可以通過-c指定通過某個channel安裝 
  13.  
  14. # 更新package 
  15. conda update -n python34 numpy 
  16.  
  17. # 刪除package 
  18. conda remove -n python34 numpy 
  • anaconda整體更新
  1. # 更新conda,保持conda最新 
  2. conda update conda 
  3.  
  4. # 更新anaconda 
  5. conda update anaconda 
  6.  
  7. # 更新python 
  8. conda update python 
  9. # 假設當前環境是python 3.4, conda會將python升級為3.4.x系列的當前最新版本 
  • anaconda國內鏡像
    清華TUNA鏡像源有Anaconda倉庫的鏡像,可以加速我們的版本安裝,執行完下列命令后,會生成~/.condarc(Linux/Mac)或C:\Users\USER_NAME.condarc文件,記錄着我們對conda的配置,直接手動創建、編輯該文件是相同的效果。
  1. # 添加Anaconda的TUNA鏡像 
  2. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 
  3. # TUNA的help中鏡像地址加有引號,需要去掉 
  4.  
  5. # 設置搜索時顯示通道地址 
  6. conda config --set show_channel_urls yes 

機器學習Python環境安裝

建立深度學習Tensorflow目錄

  • mkdir tensorflow

pyenv使用局部環境

  1. pyenv install --list #查看版本 
  2. pyenv install anaconda3.xxxx #安裝3版本 
  3. pyenv local anaconda3.xxxx #選擇anaconda3版本環境 
  4. python #驗證,會進入3版本 
  5. pyenv versions  #查看版本 

pyenv使用anaconda進行局部控制

  • pyenv install anaconda屬於安裝了整個包,我們可以通過pyenv local設置使用anaconda2或者3來使用2或者3版本的python
  • anaconda引用之后,可以使用conda命令來建立環境,隔絕相互之間的影響,以安裝numpy為例子
  1. conda create -n env_name 
  2.  
  3. # 查看某個指定環境的已安裝包 
  4. conda list -n python34 
  5.  
  6. # 查找package信息 
  7. conda search numpy 
  8.  
  9. # 安裝package 
  10. conda install -n python34 numpy 
  11. # 如果不用-n指定環境名稱,則被安裝在當前活躍環境 
  12. # 也可以通過-c指定通過某個channel安裝 
  13.  
  14. # 更新package 
  15. conda update -n python34 numpy 
  16.  
  17. # 刪除package 
  18. conda remove -n python34 numpy 

使用conda建立tensorflow環境變量

  1. conda install -n tensorflow python=3.6 
  2. # 此時會安裝3.6版本相關的python包,包括pip3 
  3.  
  4. source activate tensorflow 
  5. # (tensorflow)$ # Your prompt should change  
  6.  
  7. pip install --upgrade tensorflow-gpu 
  8. #此時pip是屬於3.6版本,安裝也是最新版本的tf,從安裝cp=3.6,安裝過程中會出現xxx1.2.1,說明tf為1.2.1 
  9.  
  10. (tensorflow)$ pip install --ignore-installed --upgrade \ 
  11. https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.2.1-cp34-cp34m-linux_x86_64.whl 
  12. #指定版本安裝 
  13.  
  14. source deactivate tensorflow 
  15. #退出環境變量 

測試tf

  1. # Python 
  2. import tensorflow as tf 
  3. hello = tf.constant('Hello, TensorFlow!'
  4. sess = tf.Session() 
  5. print(sess.run(hello)) 
  6.  
  7. #importError: libcusolver.so.8.0 
  8. export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH >>.bash_profile 

此種方式安裝tensorflow所在目錄

  1. #在任意一個目錄下啟動pyenv的相關環境變量 
  2. pyenv global anaconda3-4.4.0/envs/tensorflow #pyenv和anaconda結合 
  3. #find ~ -name 'tensorflow'查找到tf於pip所安裝的目錄 
  4. ~/.pyenv/versions/anaconda3-4.4.0/envs/tensorflow/lib/python3.6/site-packages/tensorflow 

重啟之后進入對應環境並更新對應機器學習庫

  1. #若重啟之前對應文件夾里若使用過pyenv 對應環境 
  2. pyenv global anaconda 
  3. #通過pyenv versions驗證 
  4.  
  5. conda install -n tensorflow sklearn 
  6. #會提示  sklearn: scikit-learn ,seaborn 
  7. conda install -n tensorflow scikit-learn 
  8. #conda會自動導入相關的包,libgfortran,mkl,numpy,scikit-learn,scipy 
  9.  
  10. #由於anaconda比較大,如果安裝過大會導致用戶所占硬盤過大 
  11. pyenv uninstall anaconda2.x.x 

小結

  • 一般就安裝一個anaconda版本,若網速過慢,可以考慮更改為國內鏡像。
  • 萬不得已不用anaconda建立新的環境變量,所占空間過大
  • 一般情況都使用pip來進行原生態的安裝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM