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/javascript
python版本和包的管理
預備安裝的準備條件
- sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
- libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
- xz-utils tk-dev
pyenv安裝
利用pyenv管理系統版本,而利用anaconda管理第三方庫。html
- (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窗口才生效
- git clone https:
- echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
- echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
- echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
- source ~/.bash_profile
pyenv使用命令
- 展現python的某個版本,anaconda-2支持python2.6和2.7 anaconda-3支持python3.3和3.4
- hpc@hpc:~$ pyenv install --list
- Available versions:
- 2.1.3
- 2.2.3
- 2.3.7
- 2.4
- 2.4.1
- 2.4.2
- 2.4.3
- 2.4.4
- 2.4.5
- pyenv install -v 2.7.5
- pyenv uninstall 2.7.5
- rm -rf ~/.pyenv/versions/2.7.5 ##移除版本2.7.5
- #tab鍵能夠進行補全,經過versions命令查看大致,細節tab補全
- pyenv versions
- pyenv local 2.7.5 ##局部文件下版本切換
- pyenv global 3.3.5 ##全局系統下的版本切換
Anaconda科學計算包的使用:
- pyenv install anaconda #pyenv install --list 查看版本 install之時經過tab進行補全
Anaconda的一些使用說明:
- 想要運行,必須先創造環境與管理環境中package
- conda create -n env_name
-
- # 查看某個指定環境的已安裝包
- conda list -n python34
-
- # 查找package信息
- conda search numpy
-
- # 安裝package
- conda install -n python34 numpy
- # 若是不用-n指定環境名稱,則被安裝在當前活躍環境
- # 也能夠經過-c指定經過某個channel安裝
-
- # 更新package
- conda update -n python34 numpy
-
- # 刪除package
- conda remove -n python34 numpy
- # 更新conda,保持conda最新
- conda update conda
-
- # 更新anaconda
- conda update anaconda
-
- # 更新python
- conda update python
- # 假設當前環境是python 3.4, conda會將python升級爲3.4.x系列的當前最新版本
- anaconda國內鏡像
清華TUNA鏡像源有Anaconda倉庫的鏡像,能夠加速咱們的版本安裝,執行完下列命令後,會生成~/.condarc(Linux/Mac)或C:\Users\USER_NAME.condarc文件,記錄着咱們對conda的配置,直接手動建立、編輯該文件是相同的效果。
- # 添加Anaconda的TUNA鏡像
- conda config --add channels https:
- # TUNA的help中鏡像地址加有引號,須要去掉
-
- # 設置搜索時顯示通道地址
- conda config --set show_channel_urls yes
機器學習Python環境安裝
創建深度學習Tensorflow目錄
pyenv使用局部環境
- pyenv install --list #查看版本
- pyenv install anaconda3.xxxx #安裝3版本
- pyenv local anaconda3.xxxx #選擇anaconda3版本環境
- python #驗證,會進入3版本
- pyenv versions #查看版本
pyenv使用anaconda進行局部控制
- pyenv install anaconda屬於安裝了整個包,咱們能夠經過pyenv local設置使用anaconda2或者3來使用2或者3版本的python
- anaconda引用以後,可使用conda命令來創建環境,隔絕相互之間的影響,以安裝numpy爲例子
- conda create -n env_name
-
- # 查看某個指定環境的已安裝包
- conda list -n python34
-
- # 查找package信息
- conda search numpy
-
- # 安裝package
- conda install -n python34 numpy
- # 若是不用-n指定環境名稱,則被安裝在當前活躍環境
- # 也能夠經過-c指定經過某個channel安裝
-
- # 更新package
- conda update -n python34 numpy
-
- # 刪除package
- conda remove -n python34 numpy
使用conda創建tensorflow環境變量
- conda install -n tensorflow python=3.6
- # 此時會安裝3.6版本相關的python包,包括pip3
-
- source activate tensorflow
- # (tensorflow)$
-
- pip install --upgrade tensorflow-gpu
- #此時pip是屬於3.6版本,安裝也是最新版本的tf,從安裝cp=3.6,安裝過程當中會出現xxx1.2.1,說明tf爲1.2.1
-
- (tensorflow)$ pip install --ignore-installed --upgrade \
- https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.2.1-cp34-cp34m-linux_x86_64.whl
- #指定版本安裝
-
- source deactivate tensorflow
- #退出環境變量
測試tf
-
- import tensorflow as tf
- hello = tf.constant('Hello, TensorFlow!')
- sess = tf.Session()
- print(sess.run(hello))
-
-
- export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH >>.bash_profile
此種方式安裝tensorflow所在目錄
- #在任意一個目錄下啓動pyenv的相關環境變量
- pyenv global anaconda3-4.4.0/envs/tensorflow #pyenv和anaconda結合
- #find ~ -name 'tensorflow'查找到tf於pip所安裝的目錄
- ~/.pyenv/versions/anaconda3-4.4.0/envs/tensorflow/lib/python3.6/site-packages/tensorflow
重啓以後進入對應環境並更新對應機器學習庫
- #若重啓以前對應文件夾裏若使用過pyenv 對應環境
- pyenv global anaconda
- #經過pyenv versions驗證
-
- conda install -n tensorflow sklearn
- #會提示 sklearn: scikit-learn ,seaborn
- conda install -n tensorflow scikit-learn
- #conda會自動導入相關的包,libgfortran,mkl,numpy,scikit-learn,scipy
-
- #因爲anaconda比較大,若是安裝過大會致使用戶所佔硬盤過大
- pyenv uninstall anaconda2.x.x
小結
- 通常就安裝一個anaconda版本,若網速過慢,能夠考慮更改成國內鏡像。
- 萬不得已不用anaconda創建新的環境變量,所佔空間過大
- 通常狀況都使用pip來進行原生態的安裝