- 旨在对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
相关参考链接: