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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章