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版本和包的管理
预备安装的准备条件
- sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
- libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
- 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窗口才生效
- git clone https://github.com/yyuu/pyenv.git ~/.pyenv
- echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
- echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
- echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
- source ~/.bash_profile
pyenv使用命令
- 展示python的某个版本,anaconda-2支持python2.6和2.7 anaconda-3支持python3.3和3.4
- hpc@hpc:~$ pyenv install --list
- Available versions:
- 2.1.3
- 2.2.3
- 2.3.7
- 2.4
- 2.4.1
- 2.4.2
- 2.4.3
- 2.4.4
- 2.4.5
- 安装和卸载python的某个版本
- pyenv install -v 2.7.5
- pyenv uninstall 2.7.5
- rm -rf ~/.pyenv/versions/2.7.5 ##移除版本2.7.5
- 查看并切换版本
- #tab键可以进行补全,通过versions命令查看大体,细节tab补全
- pyenv versions
- pyenv local 2.7.5 ##局部文件下版本切换
- pyenv global 3.3.5 ##全局系统下的版本切换
Anaconda科学计算包的使用:
- 通过pyenv安装Anaconda科学计算包
- pyenv install anaconda #pyenv install --list 查看版本 install之时通过tab进行补全
Anaconda的一些使用说明:
- 查看当前系统下的环境
- conda info -e
- 查看已经安装的包
- conda list
- 想要运行,必须先创造环境与管理环境中package
- conda create -n env_name
- # 查看某个指定环境的已安装包
- conda list -n python34
- # 查找package信息
- conda search numpy
- # 安装package
- conda install -n python34 numpy
- # 如果不用-n指定环境名称,则被安装在当前活跃环境
- # 也可以通过-c指定通过某个channel安装
- # 更新package
- conda update -n python34 numpy
- # 删除package
- conda remove -n python34 numpy
- anaconda整体更新
- # 更新conda,保持conda最新
- conda update conda
- # 更新anaconda
- conda update anaconda
- # 更新python
- conda update python
- # 假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本
- anaconda国内镜像
清华TUNA镜像源有Anaconda仓库的镜像,可以加速我们的版本安装,执行完下列命令后,会生成~/.condarc(Linux/Mac)或C:\Users\USER_NAME.condarc文件,记录着我们对conda的配置,直接手动创建、编辑该文件是相同的效果。
- # 添加Anaconda的TUNA镜像
- conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- # TUNA的help中镜像地址加有引号,需要去掉
- # 设置搜索时显示通道地址
- conda config --set show_channel_urls yes
机器学习Python环境安装
建立深度学习Tensorflow目录
- mkdir tensorflow
pyenv使用局部环境
- pyenv install --list #查看版本
- pyenv install anaconda3.xxxx #安装3版本
- pyenv local anaconda3.xxxx #选择anaconda3版本环境
- python #验证,会进入3版本
- pyenv versions #查看版本
pyenv使用anaconda进行局部控制
- pyenv install anaconda属于安装了整个包,我们可以通过pyenv local设置使用anaconda2或者3来使用2或者3版本的python
- anaconda引用之后,可以使用conda命令来建立环境,隔绝相互之间的影响,以安装numpy为例子
- conda create -n env_name
- # 查看某个指定环境的已安装包
- conda list -n python34
- # 查找package信息
- conda search numpy
- # 安装package
- conda install -n python34 numpy
- # 如果不用-n指定环境名称,则被安装在当前活跃环境
- # 也可以通过-c指定通过某个channel安装
- # 更新package
- conda update -n python34 numpy
- # 删除package
- conda remove -n python34 numpy
使用conda建立tensorflow环境变量
- conda install -n tensorflow python=3.6
- # 此时会安装3.6版本相关的python包,包括pip3
- source activate tensorflow
- # (tensorflow)$ # Your prompt should change
- pip install --upgrade tensorflow-gpu
- #此时pip是属于3.6版本,安装也是最新版本的tf,从安装cp=3.6,安装过程中会出现xxx1.2.1,说明tf为1.2.1
- (tensorflow)$ pip install --ignore-installed --upgrade \
- https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.2.1-cp34-cp34m-linux_x86_64.whl
- #指定版本安装
- source deactivate tensorflow
- #退出环境变量
测试tf
- # Python
- import tensorflow as tf
- hello = tf.constant('Hello, TensorFlow!')
- sess = tf.Session()
- print(sess.run(hello))
- #importError: libcusolver.so.8.0
- export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH >>.bash_profile
此种方式安装tensorflow所在目录
- #在任意一个目录下启动pyenv的相关环境变量
- pyenv global anaconda3-4.4.0/envs/tensorflow #pyenv和anaconda结合
- #find ~ -name 'tensorflow'查找到tf于pip所安装的目录
- ~/.pyenv/versions/anaconda3-4.4.0/envs/tensorflow/lib/python3.6/site-packages/tensorflow
重启之后进入对应环境并更新对应机器学习库
- #若重启之前对应文件夹里若使用过pyenv 对应环境
- pyenv global anaconda
- #通过pyenv versions验证
- conda install -n tensorflow sklearn
- #会提示 sklearn: scikit-learn ,seaborn
- conda install -n tensorflow scikit-learn
- #conda会自动导入相关的包,libgfortran,mkl,numpy,scikit-learn,scipy
- #由于anaconda比较大,如果安装过大会导致用户所占硬盘过大
- pyenv uninstall anaconda2.x.x
小结
- 一般就安装一个anaconda版本,若网速过慢,可以考虑更改为国内镜像。
- 万不得已不用anaconda建立新的环境变量,所占空间过大
- 一般情况都使用pip来进行原生态的安装
python多版本以及各种包管理的更多相关文章
- python版本管理工具pyenv和包管理工具pipenv
一.pyenv版本管理工具 pyenv是一个python版本管理工具,可以实现轻松切换多个python版本 它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理v ...
- python 工具链 虚拟环境和包管理工具 pipenv
Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, ...
- Python - poetry(1)包管理利器的入门介绍
Python 虚拟环境详解 https://www.cnblogs.com/poloyy/p/15266382.html poetry 官方介绍 github:https://github.com/p ...
- Python 包管理工具解惑
Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...
- 转载:Python 包管理工具解惑
Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文章提供m ...
- 打包一沓开源的 C/C++ 包管理工具送给你!
本文作者:HelloGitHub-ChungZH 博客地址:https://chungzh.cn/ 包管理器可以帮助你更方便地安装依赖关系,并决定所安装的版本,提高你的开发幸福感.许多语言都有自己的包 ...
- Golang 包管理机制
Golang 包管理机制 1. 历史 在go1.11之前, 并没有官方的包管理机制(Godep算个半官方), 主流的包管理机制有: GoVendor Glide Godep 在go1.11之后, 官方 ...
- Python包管理工具和多版本环境管理
1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
随机推荐
- vue中引入jQuery和bootstrap
一.引入jQuery: 首先在当前项目的根目录下(就是与package.json同目录),运行命令npm install jquery --save-dev 这样就将jquery安装到了这个项目中 ...
- jQuery --- 实现 checkbox 样式的单选框
早就想写点博客了 一直懒着动 最近发现一些写过的东西都不记得了,下决心把自己平时遇到的问题.得到的经验记录下来,希望能大家一点帮助 这是之前写的一个模态框 要求单选 但是 要求radio的默认样式 ...
- nginx中支持.htaccess并禁止php在特定目录无法运行
在nginx.conf中的server里面 include /yjdata/www/thinkphp/.htaccess; 在对应的目录下面创建.htaccess,并填写以下内容,(image是跟目下 ...
- css FlexBox 弹性盒子常用方法总结
总结一下弹性盒子常用的方法,弹性盒子的功能强大,这次我做了兼容性的felxbox,虽然代码多了一点,但在项目时候可以直接复制过来用,同时在项目上线的时候,如果这时候弹性盒子出了兼容问题,那就可急了~ ...
- spring boot 文件上传 文件过大 FileUploadBase$SizeLimitExceed
application.properties中加入 multipart.maxFileSizemultipart.maxRequestSize Spring Boot 1.3.x或者之前 multip ...
- python_如何进行反向迭代和实现反向迭代?
案例: 实现一个连续的浮点数发生器,FloatRange,根据给定范围(start, end) 和步进值,产生一些列的浮点数,例如:FloatRange(3,4,0.2),将产生下列序列: 正向:3. ...
- mybatis中@Param的用法和作用
用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 我们先来看Mapper接口中的@Select方法 package Ma ...
- 企业级分布式存储应用与实战FastDFS实现
FASTDFS是什么 FastDFS是由国人余庆所开发,其项目地址:https://github.com/happyfish100 FastDFS是一个轻量级的开源分布式文件系统,主要解决了大容量的文 ...
- 关于Mysql模糊查询的优化-全文检索和Like的使用
表A:CREATE TABLE `tableA` (`id` int(11) NOT NULL auto_increment,`content` varchar(256) default NULL,P ...
- wepy 初探
此篇文章仅仅是对自身项目的一个总结,并对一些遇到的问题给出解决方法 一,安装 wepy安装 二,使用 wepy的文档已经写的很清晰了,遇到的问题大多在issues和wiki中也能找到,具体就不概述了, ...