python-包管理-pyenv

virtualenv

virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响:

  1. 在没有权限的情况下安装新套件
  2. 不同应用可以使用不同的套件版本
  3. 套件升级不影响其他应用

pyenv

切换python方式

  1. 设置PATH
  2. 脚本前写入#!/usr/bin/env python2.7

python可以一键(命令)切换全局、本地或当前 shell 使用的 Python 版本
在$PATH最前面添加了垫片路径(shims),比如

~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin

Python可执行文件,会在这里被截获

依赖

sudo apt-get update
sudo apt-get install make build-essential libssl-dev zlib1g-dev
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
sudo apt-get install llvm libncurses5-dev libncursesw5-dev

安装

自动安装

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

给pyenv添加环境变量~/.bashrc

export PATH="/home/sean/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

命令

$ pyenv versions  # 列出系统当前已安装的版本
$ pyenv install python_version   # 安装指定版本 python_version
$ pyenv global 3.4.0  # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
$ pyenv rehash  # 为所有已安装的可执行文件 (如:~/.pyenv/versions/*/bin/*) 创建 shims,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令
$ pyenv local  ## 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
$ pyenv shell  # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。
$ pyenv shell pypy-2.2.1
$ pyenv shell --unset

使用python

  • 输入 python 即可使用新版本的 python;
  • 系统自带的脚本会以 /usr/bin/python 的方式直接调用老版本的 python, 因而不会对系统脚本产生影响;
  • 使用 pip 安装第三方模块时会安装到 ~/.pyenv/versions/3.4.1 下, 不会和系统模块发生冲突。
  • 使用 pip 安装模块后,可能需要执行 pyenv rehash 更新数据库;

centos

yum install -y gcc libzip-devel readline-devel zlib-devel bzip2-devel sqlite-devel openssl-devel python-pip python-setuptools patch

安装pip

wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate
python get-pip.py

豆瓣源~/.pip/pip.conf

[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com

posted @ 2016-11-08 09:54  zhangshihai1232  阅读(156)  评论(0)    收藏  举报