使用 pyenv 和 Vtualenv 做环境隔离, 使用 jupyter 方便我们学习
新建用户
所有操作都应在单独的用户中进行, 不要使用 root 用户
- useradd python
- Pyenv
安装 Pyenv
开发版本和所用包版本的隔离
github 地址 https://github.com/pyenv/pyenv-installer
安装过程在 CentOS 中进行, 注意用到 EPEL 源
安装 git
yum install git -y
安装依赖
yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
升级 nss, 同时保证系统时间正确, 不然安装 pyenv 可能报错
yum update nss
安装 pyenv
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
将下面的三行加入到~/.bash_profile
- export PATH="/home/python/.pyenv/bin:$PATH"
- eval "$(pyenv init -)"
- eval "$(pyenv virtualenv-init -)"
- source ~/.bash_profile
这样当用户启动的时候, 会执行用户的. bash_profile 中的脚步, 就会启动 pyenv
安装好的 pyenv 就在~/.pyenv 中
Pyenv 的使用
列出所有可用版本
pyenv instll --list
在线安装指定版本 (加 - v 可以查看详细安装过程)
pyenv install 3.5.3 -v
查看已安装的所有版本 (system 为当前系统自带版本)
pyenv versions
这样安装较慢, 为了提速, 使用缓存方式安装
在~/.pyenv 目录下, 新建 cache 目录, 放入下载好的待安装版本的文件, 例如 Python-3.6.3.tar.xz
pyenv install 3.6.3 -v
Pyenv 的 python 版本控制
version 显示当前的 python 版本
versions 显示所有已安装的 python 版本, 和当前版本
global 全局设置
$ pyenv global 3.5.3
可以看到所有受 pyenv 控制的窗口中都是 3.5.3 的 python 版本了
这里用 global 是作用于非 root 用户 python 用户上, 如果是 root 用户安装, 请不要使用 global, 否则影响太大.
比如 CentOS 就是使用 Python2.X,root 用户下使用 global 就成了 3.X, 会带来不好的影响
调整回系统默认版本
$ pyenv global system
shell 会话设置
影响只作用于当前会话
$ pyenv shell 3.6.2
local 本地设置
使用 pyenv local 设置从当前工作目录开始向下递归都继承这个设置
pyenv local 3.6.2
Virtualenv 虚拟环境
为什么要使用虚拟环境?
因为刚才使用的 Python 环境都是一个公共的空间, 如果多个项目使用不同的 Python 版本开发, 或者使用不同的 Python 版本部署运行, 或者使用了同样的版本开发的但不同项目使用了不同版本的库, 等等这些问题都会带来冲突. 最好的解决办法就是每一个项目独立运行自己的 "独立小环境" 中.
我们新建一个目录, 接下来将这个目录切换到 Python 3.6.2 的环境, 与系统自带的 2.x 环境不冲突
mkdir -p dzm/projects/test/
创建虚拟环境, 使用呢 Python 3.6.2 版本创建出一个独立的虚拟空间
pyenv virtualenv 3.6.2 py362
此时再使用 pyenv versions 就可以看到版本列表中名为 py362 的环境
将新建的目录切换为 py362 环境
- cd dzm/projects/test/
- pyenv local py362
此时当前目录及其子目录下面的 python 环境就变成了 3.6.2 版本
其它
不同环境的真实目录
/home/python/.pyenv/versions/
每个环境所安装的包都会在相应的 site-packages 目录中来
/home/python/.pyenv/versions/3.6.2/lib/python3.6/site-packages
安装 ipython
ipython 是增强的交互式 Python 命令行工具
操作仍然在 dzm/projects/test / 目录中, 此时 ipython 也是安装到这个环境中的, 与外面的环境相互隔离
- pip install ipython
- ipython
pip 通用配置
pip 是 Python 的包管理工具, 3.x 版本直接带了, 可以直接使用
和 yum 一样为了使用国内镜像, 做如下配置
Linux 系统
- $ mkdir ~/.pip
- vim ~/.pip/pip.conf
- [global]
- index-url=https://mirrors.aliyun.com/pypi/simple/
- truste
windows 系统
pip 的配置文件在家目录新建 pip 文件夹, 在里面新建文本文件 pip.ini, 等同于 linux 环境的 pip.conf
pip 其它应用
查看当前环境都安装了哪些包
pip list
将当前环境的包的列表导出到一个文件
pip freeze> requirement
根据上面导出的列表安装包
- pip install -r requirement
- (把虚拟环境包目录里面的文件直接拷贝到新环境包目录里也可以)
- Jupyter
安装 Jupyter
是基于 web 的交互式笔记本, 其中可以非常方便的使用 python
安装 Jupyter, 也会安装 ipython 的
pip install jupyter
查看帮助
jupyter notebook --help
设置密码 (不然用网页端浏览时就要输入启动时的随机密码)
jupyter notebook password
启动 (如果不自定 0.0.0.0, 那么启动后默认绑定 127.0.0.1, 外部是无法浏览的, 默认 8888 端口)
jupyter notebook --ip=0.0.0.0
查看启动端口 (默认 8888)
ss -tanl
查看本机 IP 地址
在 windows 系统中通过浏览器浏览 ip:8888, 输入密码后即可使用 jupyter
来源: http://www.bubuko.com/infodetail-2737785.html