- 旨在對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
相關參考鏈接: