virtualenv虛擬環境管理+Anaconda虛擬環境與Kernel的管理

  • 旨在對Anaconda虛擬環境的管理做個總結: 多python版本工作環境;
  • 虛擬環境的創建、刪除、導出, 自己工作python環境做備份,將python環境和自己的搭建的module進行對應匹配,避免版本的不兼容性問題;
  • 對python或者其他工具(Julia、Matlab)的Kernel管理做個筆記,方便自己以後查閱。


先給自己挖個坑。。。
[此坑尚未填滿。。。。]


手動安裝Python及相關工具

安裝指定版本的python

  • 下載需要的python版本【我是鏈接,點我】
  • 安裝:
    • 進入下載好的解壓過的文件夾,比如:/home/papageno/Python-2.7.15/
    • 或者 wget 在服務器上下載: wget this-is-the-dowload-link,
      tar -xvf this-is-the-download-file-tar-gz解壓, 進入文件夾.
# 指定安裝位置爲:/home/papageno/python27
./configure --prefix=/home/papageno/python27
# 編譯並安裝
make
make install

安裝setuptools和pip

setuptools下載地址
pip下載地址
安裝時指定python位置!

# 進入文件夾爲剛剛下載解壓的setuptool文件夾
/home/papageno/python27/bin/python setup.py install
# 進入的文件夾爲剛剛下載並解壓的pip文件夾
/home/papageno/python27/bin/python setup.py install

以上我們安裝了想要的python,還有pip工具,接下來配置虛擬環境。


pip 進行包管理

使用virtualenv管理虛擬環境

  • 沒有root權限,在用戶本地搭建虛擬環境
  • 對特定project需要對應的python版本和包版本

安裝 virtualenv

pip install virtualenv 

創建虛擬環境( virtualenv)

  • 先進入你想放置虛擬環境的位置,比如我的是 /home/papageno/py-env

    virtualenv -p /home/papageno/python27/bin/python py27env
    

    命令virtualenv -p PYTHON-EXE-YOU-WANT-TO-USE-FOR-THIS-ENV yourEnvName

    py27env是我安裝這個虛擬環境的名字,在當前文件夾下會建立這樣一個虛擬環境,指定了運行的python/home/papageno/python27/bin/python, 就是我剛纔裝的那個python

  • 將新創建的虛擬環境的路徑加入用戶環境變量,編輯一般情況下位置爲 ~/.bashrc

    # virtualenv py2.7.15 UCS2
    export PATH=$PATH:/home/papageno/py-env/py27env/bin
    

    常用操作source ~/.bashrc,激活剛剛改的環境變量文件

    source ~/.bashrc
    
  • 進入與退出虛擬環境py27env

    [注意] 一般我爲了防止多個虛擬環境激活文件重名,這裏我手動把/home/papageno/py-env/py27env/bin裏面的activate文件改名爲activate27 !

    由於我們已經將剛剛建立的虛擬環境py27env加入了環境變量,進入虛擬環境只需

     # 我已經把activate手動改名爲activate27, 不然多個虛擬環境時環境變量中`activate`可能會有同名現象
    source activate27
    

    現在你可以在這個虛擬環境裏通過pip install XXX來安裝了,所有安裝的東西默認位置都在此虛擬環境內。
    退出虛擬環境,shell中輸入

    deactivate
    

在 virtualenv中安裝各種python包

virtualenv 進階管理

當前環境下庫版本的導出與安裝

pip freeze > my_py27_requirements.txt

從此文件安裝
pip install -r my_py27_requirements.txt


我們也可以使用更高級化一點(也許有時候更麻煩一點)的工具Anaconda來實現對包的管理


使用Anaconda的Python並用conda進行包管理

conda env安裝與管理虛擬環境

虛擬環境的創建 conda env list

虛擬環境的包管理 conda env create

conda env

Jupyter kernel 配置問題

Anaconda的python可能會遇到 undefined symbol: PyUnicodeUCS2_DecodeUTF8 , Anaconda的Python都是UCS4. 所以.so文件在編譯的時候注意選擇encoding的問題
“on Linux all Anaconda Python packages use UCS4, more precisely: Because Anaconda Python 2 itself was compiled using the UCS4 flag, all (C extension) packages build against it, will be only compatible with a UCS4 Python 2 build. In many Linux distributions, e.g. Ubuntu, CentOS, UCS4 is used by the system Python (/usr/bin/python). You can always check this by looking at sys.maxunicode: the value 1114111 means UCS4 and 65535 means UCS2.”

  • 參考 https://blog.csdn.net/Papageno_Xue/article/details/83691972
  • 查看自己python的unicode
import sys
print(sys.maxunicode)
1114111  # the value 1114111 means UCS4 

或者

import sys
print(sys.maxunicode)
65535   # the value 65535  means UCS2

相關參考鏈接:

  1. https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章