python多版本以及各种包管理

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/

python版本和包的管理

预备安装的准备条件

  1. sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ 

  2. libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ 

  3. xz-utils tk-dev 

pyenv安装

利用pyenv管理系统版本,而利用anaconda管理第三方库。

  • (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窗口才生效
  1. git clone https://github.com/yyuu/pyenv.git ~/.pyenv 

  2. echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile 

  3. echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile 

  4. echo 'eval "$(pyenv init -)"' >> ~/.bash_profile 

  5. source ~/.bash_profile 

pyenv使用命令

  • 展示python的某个版本,anaconda-2支持python2.6和2.7  anaconda-3支持python3.3和3.4
  1. hpc@hpc:~$ pyenv install --list 

  2. Available versions: 

  3. 2.1.3 

  4. 2.2.3 

  5. 2.3.7 

  6. 2.4 

  7. 2.4.1 

  8. 2.4.2 

  9. 2.4.3 

  10. 2.4.4 

  11. 2.4.5 

  • 安装和卸载python的某个版本
  1. pyenv install -v 2.7.5 

  2. pyenv uninstall 2.7.5 

  3. rm -rf ~/.pyenv/versions/2.7.5 ##移除版本2.7.5 

  • 查看并切换版本
  1. #tab键可以进行补全,通过versions命令查看大体,细节tab补全 

  2. pyenv versions 

  3. pyenv local 2.7.5 ##局部文件下版本切换 

  4. pyenv global 3.3.5   ##全局系统下的版本切换 

Anaconda科学计算包的使用:

  • 通过pyenv安装Anaconda科学计算包
  1. pyenv install anaconda #pyenv install --list 查看版本 install之时通过tab进行补全 

Anaconda的一些使用说明:

  • 查看当前系统下的环境
  1. conda info -e 

  • 查看已经安装的包
  1. conda list 

  • 想要运行,必须先创造环境与管理环境中package
  1. conda create -n env_name 


  2. # 查看某个指定环境的已安装包 

  3. conda list -n python34 


  4. # 查找package信息 

  5. conda search numpy 


  6. # 安装package 

  7. conda install -n python34 numpy 

  8. # 如果不用-n指定环境名称,则被安装在当前活跃环境 

  9. # 也可以通过-c指定通过某个channel安装 


  10. # 更新package 

  11. conda update -n python34 numpy 


  12. # 删除package 

  13. conda remove -n python34 numpy 

  • anaconda整体更新
  1. # 更新conda,保持conda最新 

  2. conda update conda 


  3. # 更新anaconda 

  4. conda update anaconda 


  5. # 更新python 

  6. conda update python 

  7. # 假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本 

  • anaconda国内镜像

    清华TUNA镜像源有Anaconda仓库的镜像,可以加速我们的版本安装,执行完下列命令后,会生成~/.condarc(Linux/Mac)或C:\Users\USER_NAME.condarc文件,记录着我们对conda的配置,直接手动创建、编辑该文件是相同的效果。
  1. # 添加Anaconda的TUNA镜像 

  2. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 

  3. # TUNA的help中镜像地址加有引号,需要去掉 


  4. # 设置搜索时显示通道地址 

  5. conda config --set show_channel_urls yes 

机器学习Python环境安装

建立深度学习Tensorflow目录

  • mkdir tensorflow

pyenv使用局部环境

  1. pyenv install --list #查看版本 

  2. pyenv install anaconda3.xxxx #安装3版本 

  3. pyenv local anaconda3.xxxx #选择anaconda3版本环境 

  4. python #验证,会进入3版本 

  5. pyenv versions  #查看版本 

pyenv使用anaconda进行局部控制

  • pyenv install anaconda属于安装了整个包,我们可以通过pyenv local设置使用anaconda2或者3来使用2或者3版本的python
  • anaconda引用之后,可以使用conda命令来建立环境,隔绝相互之间的影响,以安装numpy为例子
  1. conda create -n env_name 


  2. # 查看某个指定环境的已安装包 

  3. conda list -n python34 


  4. # 查找package信息 

  5. conda search numpy 


  6. # 安装package 

  7. conda install -n python34 numpy 

  8. # 如果不用-n指定环境名称,则被安装在当前活跃环境 

  9. # 也可以通过-c指定通过某个channel安装 


  10. # 更新package 

  11. conda update -n python34 numpy 


  12. # 删除package 

  13. conda remove -n python34 numpy 

使用conda建立tensorflow环境变量

  1. conda install -n tensorflow python=3.6 

  2. # 此时会安装3.6版本相关的python包,包括pip3 


  3. source activate tensorflow 

  4. # (tensorflow)$ # Your prompt should change  


  5. pip install --upgrade tensorflow-gpu 

  6. #此时pip是属于3.6版本,安装也是最新版本的tf,从安装cp=3.6,安装过程中会出现xxx1.2.1,说明tf为1.2.1 


  7. (tensorflow)$ pip install --ignore-installed --upgrade \ 

  8. https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.2.1-cp34-cp34m-linux_x86_64.whl 

  9. #指定版本安装 


  10. source deactivate tensorflow 

  11. #退出环境变量 

测试tf

  1. # Python 

  2. import tensorflow as tf 

  3. hello = tf.constant('Hello, TensorFlow!') 

  4. sess = tf.Session() 

  5. print(sess.run(hello)) 


  6. #importError: libcusolver.so.8.0 

  7. export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH >>.bash_profile 

此种方式安装tensorflow所在目录

  1. #在任意一个目录下启动pyenv的相关环境变量 

  2. pyenv global anaconda3-4.4.0/envs/tensorflow #pyenv和anaconda结合 

  3. #find ~ -name 'tensorflow'查找到tf于pip所安装的目录 

  4. ~/.pyenv/versions/anaconda3-4.4.0/envs/tensorflow/lib/python3.6/site-packages/tensorflow 

重启之后进入对应环境并更新对应机器学习库

  1. #若重启之前对应文件夹里若使用过pyenv 对应环境 

  2. pyenv global anaconda 

  3. #通过pyenv versions验证 


  4. conda install -n tensorflow sklearn 

  5. #会提示  sklearn: scikit-learn ,seaborn 

  6. conda install -n tensorflow scikit-learn 

  7. #conda会自动导入相关的包,libgfortran,mkl,numpy,scikit-learn,scipy 


  8. #由于anaconda比较大,如果安装过大会导致用户所占硬盘过大 

  9. pyenv uninstall anaconda2.x.x 

小结

  • 一般就安装一个anaconda版本,若网速过慢,可以考虑更改为国内镜像。
  • 万不得已不用anaconda建立新的环境变量,所占空间过大
  • 一般情况都使用pip来进行原生态的安装

python多版本以及各种包管理的更多相关文章

  1. python版本管理工具pyenv和包管理工具pipenv

    一.pyenv版本管理工具 pyenv是一个python版本管理工具,可以实现轻松切换多个python版本 它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理v ...

  2. python 工具链 虚拟环境和包管理工具 pipenv

    Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, ...

  3. Python - poetry(1)包管理利器的入门介绍

    Python 虚拟环境详解 https://www.cnblogs.com/poloyy/p/15266382.html poetry 官方介绍 github:https://github.com/p ...

  4. Python 包管理工具解惑

    Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...

  5. 转载:Python 包管理工具解惑

    Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...

  6. 打包一沓开源的 C/C++ 包管理工具送给你!

    本文作者:HelloGitHub-ChungZH 博客地址:https://chungzh.cn/ 包管理器可以帮助你更方便地安装依赖关系,并决定所安装的版本,提高你的开发幸福感.许多语言都有自己的包 ...

  7. Golang 包管理机制

    Golang 包管理机制 1. 历史 在go1.11之前, 并没有官方的包管理机制(Godep算个半官方), 主流的包管理机制有: GoVendor Glide Godep 在go1.11之后, 官方 ...

  8. Python包管理工具和多版本环境管理

    1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...

  9. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

随机推荐

  1. 微信小程序实现顶部、底部联动滑动

    这个场景一般用于展示数据时,数据过多,每条一行显示不下,表头可以横向滑动,下面要显示的数据部分横向纵向都可以滑动.表头或下面数据部分横向滑动的时候,两部分可以进行联动 具体效果像这样(随便写的丑样式布 ...

  2. 自学python Day01

    What is Python 1. 面向对象的解释行语言 2. 非常丰富的库 3. 使用制表符作为语句缩进 (white space) 优点: 1. 免费.开源 2. 可扩展性.可嵌入性 3. 非常丰 ...

  3. Python判断文件是否存在的三种方法【转】

    转:http://www.cnblogs.com/jhao/p/7243043.html 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先 ...

  4. python_如何快速安装第三方库?

    如何快速安装第三方库? 通过python 豆瓣园源https://pypi.douban.com/simple/进行安装,利用国内网速 如何安装? pip -i install https://pyp ...

  5. 译-Web Service剖析: XML, SOAP 和WSDL 用于独立于平台的数据交换

    本文是翻译内容,原文参见: Anatomy of a Web Service: XML, SOAP and WSDL for Platform-independent Data Exchange We ...

  6. RadioButton与监听

    public class MainActivity extends Activity implements OnCheckedChangeListener { <RadioGroup andro ...

  7. vue调试神器vue-devtools安装

    vue-devtools安装 vue-devtools是一款用来调试Vue应用的Chrome插件,可极大提高开发者调试项目效率,接着我们说一下如何下载安装这个插件; 一. 从chrome商店直接下载安 ...

  8. Mac 提示安装包已损坏

    mac 系统更新到 Sierra 10.12.X 版本后,从非 itunes 渠道下载的软件安装时都会报 “安装包已损坏” 的错误,这是新的系统设置的安全机制,为了解决这个问题,可以在命令行中输入命令 ...

  9. BSGS(Baby Steps,Giant Steps)算法详解

    BSGS(Baby Steps,Giant Steps)算法详解 简介: 此算法用于求解 Ax≡B(mod C): 由费马小定理可知: x可以在O(C)的时间内求解:  在x=c之后又会循环: 而BS ...

  10. React 16.3来了:带着全新的Context API

    文章概览 React在版本16.3-alpha里引入了新的Context API,社区一片期待之声.我们先通过简单的例子,看下新的Context API长啥样,然后再简单探讨下新的API的意义. 文中 ...