Fork me on GitHub

Python环境安装

本节内容:

  • 安装pyenv
  • pyenv使用
  • virtualenv
  • windows安装python和pip

 

通常我们不会使用Linux或者Mac自带的python,因为它自带的python是要为系统做很多服务的,这个时候如果我们随意地去升级自带的python,安装上了有冲突的包,那么可能我们的系统环境都会被打乱了。所以我们通常安装额外的python环境来开发。

如果我们现在只开发一个项目,以后也只开发一个项目,那么我们只安装一个python环境就够了。但是事实上并不是这样的,我们通常要开发维护多个项目,这些项目之间所依赖的包的版本可能是不一样的。所以这个时候我们就要对python的环境做一个管理。如何管理呢?pyenv。用过ruby的话,就会听说过rbenv,pyenv就是模仿rbenv来写的。

pyenv可以做哪些事情呢?安装python解释器、管理python版本、管理python虚拟环境(虚拟环境相当于独立的版本,虚拟环境之间的python所依赖的包、库不会有互相干扰的)

 

一、安装pyenv

bash写的程序,不依赖任何东西就可以完成它的工作了。除了JIT。但是你在用pyenv install python版本的时候,因为是python编译安装,所以还是要有依赖的。gcc,make,patch,gdbm-devel,openssl-devel,sqlite-devel,zlib-devel,bzip2-devel,readline,下面可以看到。

Github way (recommended)
Install:
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
#但是这种方式是比较危险的,这样去安装我们是看不到这个pyenv-installer是什么东西的。不知道这个代码有没有危险。安装后是在$PYENV_ROOT下,这个环境变量默认是没有的,默认放在当前家目录。

Update:
$ pyenv update

Uninstall: pyenv is installed within $PYENV_ROOT (default: ~/.pyenv). To uninstall, just remove it:
$ rm -fr ~/.pyenv

and remove these three lines from .bashrc:
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
If you need, export USE_GIT_URI to use git:// instad of https// for git clone.    

  

1. 先安装git 
[root@log1 ~]# yum install -y git

  

2.安装pyenv

[root@log1 ~]# curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

  

3.配置环境变量

[root@log1 ~]# vim .bash_profile
# Load pyenv automatically.
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
[root@log1 ~]# source .bash_profile 
[root@db ~]# ls .pyenv/
bin  cache  CHANGELOG.md  COMMANDS.md  completions  CONDUCT.md  libexec  LICENSE  Makefile  plugins  pyenv.d  README.md  shims  src  test  versions

  

 二、pyenv使用

 1. 查看帮助文档

 
 
 

2. 查看当前系统上存在的Python版本

 

3. 安装3.5.2版本

先安装下依赖:

yum install readline readline-devel readline-static -y
yum install openssl openssl-devel openssl-static -y
yum install sqlite-devel -y
yum install bzip2-devel bzip2-libs -y

安装3.5.2版本

# pyenv install 3.5.2

可以复制这个地址去迅雷下载,然后将软件传到cache目录。如果没有,自己创建一个cache目录。pyenv会校验md5值和完整性,确认无误的话就不会重新下载直接从这里安装。

[root@log1 ~]# cd .pyenv/
[root@log1 .pyenv]# mkdir cache

[root@log1 .pyenv]# pyenv install 3.5.2

  

【注意】:如果你当前的这个pyenv里面没有python 3.5.2的版本可以安装,你可以更新pyenv。

 

4. pyenv切换版本

  • local命令切换当前目录及其子目录的python版本,可以通过删除.python-version文件恢复默认的python版本。
  • global命令切换全局默认的python版本,但是永远不要用global命令。

切换版本:

# pyenv local 3.5.2

会在当前目录下生成一个隐藏文件.python-version

#  vim .python-version
3.5.2
定义了当前目录下正在用什么python版本。

【注意】:切换到其他目录,还是系统自带的那个python版本。

 

所以当我们开始做一个项目的时候,在某个目录下执行local命令,这个目录以及它的所有子目录都将使用同一个python版本。

切换回系统版本:

# pyenv local system
或者直接删除文件.python-version

如果想修改全局的python环境:

pyenv global 版本号

【注意】:永远不要去执行global。

 

三、virtualenv

python是基于site的,什么叫基于site?

java、python。java程序打一个war包就行了,所以java的依赖管理是基于project的,而python是基于site的。每个project自己管理自己的依赖,基于site的是整个机器或者说整个节点的依赖是放到同一个地方的。出现这种情况是因为以前认为一个机器只会有一个python环境,而java在设计时就认为一台机器上可能有多个java。生产上都是一个机器一个环境,但是开发上一个机器可能多个python环境。

virtualenv命令对每个项目建一个虚拟环境,这是基于project的一种依赖管理了。到python3的时候,virtualenv变成标准库了。为了减少项目之间的冲突,通常每个项目都建一个virtualenv的。

用pyenv来管理virtualenv非常简单。

这两个是一样的,pyenv为了兼容旧版本。新版本是上面那个,旧版本是下面那个monitor。

我们使用虚拟环境和使用正常的python版本是一样的,比如:

[root@db ~]# mkdir test
[root@db ~]# cd test
[root@db test]# pyenv local monitor
(monitor) [root@db test]# python -V
Python 3.5.2
(monitor) [root@db test]# pyenv version
monitor (set by /root/test/.python-version)
(monitor) [root@db test]# 

  

如何卸载版本:

 

四、windows安装Python

浏览器访问官网:https://www.python.org/

1. 下载

 

 

2. 安装

 

3.配置环境变量

 

4. 安装pip

pip是python的包管理器,类似于yum,可以安装很多软件包。下载地址:https://pypi.python.org/pypi/pip#downloads

python3.4之后已经带上pip了:
B:\Program Files\Python35\Scripts 把这个路径直接加到Path中就可以使用了。

 

 

 

posted @ 2018-04-18 15:00  暴走小骚年  阅读(441)  评论(0编辑  收藏  举报