连仕彤博客pyenv环境部署

pyenv是一款Python多版本管理工具,它可以很好的管理Python解释器、Python版本和Python虚拟环境,对于日常开发中,是一款很有必要安装的利器。

安装依赖包

[python@vultr data]$ yum -y install gcc git make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel 
 

安装pyenv

[python@vultr data]$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
...
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
 
WARNING: seems you still have not added 'pyenv' to the load path.
 
# Load pyenv automatically by adding
# the following to ~/.bash_profile:
 
export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
 
 

配置pyenv环境变量

[python@vultr data]$ vim ~/.bash_profile  //环境变量配置,追加到 ~/.bash_profile 文件中
# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/.local/bin:$HOME/bin
 
export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
 
[python@vultr data]$ source  ~/.bash_profile //source重载一下
 

pyenv常用操作

 
[python@VM_0_6_centos projects]$ pyenv --help
pyenv 1.2.3
Usage: pyenv <command> [<args>]
 
Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable
 
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
 
[python@VM_0_6_centos ~]$ pyenv versions  //查看当前可用Python版本
* system (set by /home/python/.pyenv/version) //系统版本
 
[python@VM_0_6_centos projects]$ pyenv version //查看当前Python版本
system (set by /home/python/.pyenv/version)
 

安装python版本的时候下载的安装包在/home/python/.pyenv/cache,也可以直接把Python的安装包下载下来之后放到这个路径里面,这样就可以实现离线安装了,需要注意的是Pyenv在安装的时候会随心所欲的选择安装版的后缀,比如有时候用*.tar.gz有时候用*.gz,所以建议把所有包都下载下来放到这个目录下面,让他自己选择。另外pyenv安装的python版本在/home/python/.pyenv/versions目录下面可以看到。

 
[python@VM_0_6_centos projects]$ pyenv install -l //列出当前可安装的版本
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
  2.4.6
  2.5
....
 
 
[python@VM_0_6_centos magedu]$ pyenv install 3.5.3 //安装3.5.3版本
Downloading Python-3.5.3.tar.xz...
-> https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tar.xz
Installing Python-3.5.3...
Installed Python-3.5.3 to /home/python/.pyenv/versions/3.5.3
 
[python@VM_0_6_centos magedu]$ pyenv versions
* system (set by /home/python/.pyenv/version)
  3.5.3
 
 

创建虚拟环境

有时候我们在做项目的时候,会存在A项目用3.5.3版本环境,B项目使用2.7版本环境而且每个项目的三方库、扩展包都不一样,而且到项目做完打包的时候会把和本项目无关的三方库、扩展包都打进去。在这种情况下,我们可以使用pyenv来为每一个项目做一个虚拟环境,类似于VMWare虚拟机的概念,每一个项目就是一个虚拟环境(虚拟机),创建虚拟环境的操作我理解为是VMWare克隆虚拟机的操作。

 
[python@VM_0_6_centos cmdb]$ pyenv virtualenv 3.5.3 vir353 //基于3.5.3版本创建一个名为vir353的虚拟环境
Requirement already satisfied: setuptools in /home/python/.pyenv/versions/3.5.3/envs/vir353/lib/python3.5/site-packages
Requirement already satisfied: pip in /home/python/.pyenv/versions/3.5.3/envs/vir353/lib/python3.5/site-packages
 
# 在可用版本目录里面已经可以看到我们创建的虚拟环境(虚拟版本)
[python@VM_0_6_centos projects]$ ls /home/python/.pyenv/versions/ 
3.5.3  vir353
 

然后我们进入到一个cmdb目录,然后切换到虚拟环境中。

 
[python@VM_0_6_centos cmdb]$ pyenv local vir353
(vir353) [python@VM_0_6_centos cmdb]$ 
(vir353) [python@VM_0_6_centos cmdb]$ pyenv version
vir353 (set by /home/python/test/projects/cmdb/.python-version)
[python@VM_0_6_centos projects]$ pyenv version
system (set by /home/python/.pyenv/version)
 

完成之后,你会发现在最左侧出现了我们创建的虚拟环境的版本,这样就说明当前目录是处于在一个虚拟环境中,返回到上一级目录就跳出了这个虚拟环境。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上安装和配置OrientDB

OrientDB是一个多模型NoSQL数据库,支持图形和文档数据库。它是一个Java应用程序,可以在任何操作系统上运行。它也完全支持ACID,支持多主复制,可轻...

19230
来自专栏冷冷

SpringMVC 文件下载时 浏览器不能正确显示另存的文件名

问题:通过打印输出流的方式把文件下载到本地,但是在firebox 中 下载的文件不显示文件的文件名,造成文件不能直接打开,其他浏览器可以直接打开. 原因: 主要...

22650
来自专栏猿天地

Elastic-Job-Spring-Boot-Starter简化你的任务配置

介绍 Elastic-Job Spring Boot 自动集成,只需要一个注解即可发布Job。 GitHub地址:https://github.com/yinj...

87680
来自专栏飞雪无情的博客

Android Gradle 入门

Gradle是一款非常优秀的构建系统工具,它的DSL基于Groovy实现,可以让你很方便的通过代码控制这些DSL来达到你构建的目的,其构建的大部分功能都是通过插...

15340
来自专栏云计算教程系列

​如何使用Nginx反向代理配置SSL加密的Jenkins

默认情况下,Jenkins自带内置的Winstone网络服务器,可以通过8080端口进行监听,方便入门。但是,只要您认真使用Jenkins,就应该使用SSL保护...

33140
来自专栏玩转JavaEE

Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享

小伙伴们好久不见!最近略忙,博客写的有点少,嗯,要加把劲。OK,今天给大家带来一个JavaWeb中常用的架构搭建,即Nginx+Tomcat搭建服务集群,然后通...

45560
来自专栏F_Alex

SpringCloud-微服务的注册与发现Eureka(二)

18.3K40
来自专栏世界第一语言是java

sb2.0新版springcloud微服务实战:Consul+Zuul+Feign/Ribbon+Hystrix Turbine+Config+sleuth+zipkin

本篇文章是springboot2.x升级后的升级springcloud专贴,因为之前版本更新已经好久了,好多人评论可不可以出个新版本,大家一定要注意,这是spr...

39020
来自专栏微服务生态

玩转Flume+Kafka原来也就那点事儿

好久没有写分享了,继前一个系列进行了Kafka源码分享之后,接下来进行Flume源码分析系列,望大家继续关注,今天先进行开篇文章Flume+kafka的环境配置...

11820
来自专栏Albert陈凯

Hadoop数据分析平台实战——200Spring+MyBatis+Mysql框架整合离线数据分析平台实战——200Spring+MyBatis+Mysql框架整合

离线数据分析平台实战——200Spring+MyBatis+Mysql框架整合 项目总体介绍 本项目分为三个模块,分别为: 日志收集模块, 数据分析模块以及...

375120

扫码关注云+社区

领取腾讯云代金券