linux下多版本python环境配置

pyenv

 

linux下多版本python环境配置

1. 依赖
pyenv安装使用git
# yum install git -y
# yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel

2. 创建用户python
# useradd python
# passwd python

3. 使用python用户登录
su – python

4. 开始部署pyenv

pyenv安装方式:
– pyenv git方式安装 https://github.com/pyenv/pyenv
– pyenv-installer 脚本自动安装 https://github.com/pyenv/pyenv-installer

以下将介绍使用 pyenv-installer 方式安装 pyenv
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

在python用户的~/.bash_profile中追加
export PATH=”/home/python/.pyenv/bin:$PATH”
eval “$(pyenv init -)”
eval “$(pyenv virtualenv-init -)”

$ source ~/.bash_profile

开始使用 pyenv
$ python -V
$ pyenv versions

 

5. pyenv 使用介绍
$ pyenv # 显示 pyenv 帮助
$ pyenv global x.x.x # 设置全局 python版本(应用到整个系统)
$ pyenv local x.x.x # 设置本地 python版本(子目录下会继承此设置)
$ pyenv shell x.x.x # 设置会话 python版本(作用于当前shell会话)
$ pyenv help install # 查看子命令帮助

 

$ pyenv install –list # 列出 pyenv 支持的所有版本

 

 

5.1 安装特定的 python 版本
5.1.1 online 安装指定 python 版本
$ pyenv install 3.5.3
$ pyenv versions

5.1.2. 使用缓存方式安装指定 python 版本
$ pyenv install 3.5.3 -v

> cache目录,如果目录不存在,就自己创建,在~/.pyenv目录下,新建cache目录,放入下载好的 python 文件。
> 不确定要哪一个文件,把下载的3个文件都放进去。

 

6. pyenv 使用 virtualenv 虚拟环境设置
> pyenv已经自带 Virtualenv插件,在plugins/pyenv-virtualenv

6.1 创建一个指定版本的虚拟环境空间
$ pyenv virtualenv 3.6.1 magedu361 # 创建出一个3.6.1版本的虚拟环境
$ pyenv versions # 真实目录在.pyenv/versions/
* system (set by /home/python/.pyenv/version)
3.5.3
3.6.1
3.6.1/envs/magedu361
magedu361

6.2 使用虚拟环境空间
$ mkdir -p magedu361/projects/cmdb
[python@node ~]$ cd magedu361/projects/cmdb
[python@node cmdb]$ pyenv local magedu361
(magedu361) [python@node cmdb]$ cd ..
[python@node projects]$ cd cmdb/

 

7. 部署 ipython 与 jupyter

7.1 配置pip
vi ~/.pip/pip.conf
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com

在不同的虚拟环境中,安装redis包,使用pip list看看效果。
$ pip -V

 

7.2 安装ipython
$ pip install ipython
$ ipython

7.3 部署 jupyter
安装Jupyter,也会自动安装ipython
$ pip install jupyter
$ jupyter notebook help

生成配置文件
$ jupyter notebook –generate-config
$ jupyter notebook password # 设置 jupyter 登录密码(也可以写入到配置文件中)
$ jupyter notebook –ip=0.0.0.0 –no-browser

生成密码
$ ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: ‘sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274′ # 复制密码‘sha:ce…’

修改默认配置文件
vim ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip=’*’ # 在所有IP上侦听
# c.NotebookApp.password = ‘string’
# The string should be of the form type:salt:hashed-password
c.NotebookApp.password = ‘sha:ce…刚才复制的那个密文’
c.NotebookApp.open_browser = False # 禁止自动打开浏览器
c.NotebookApp.port =8888 #随便指定一个端口

启动jupyter notebook
jupyter notebook

参考地址: <http://jupyter-notebook.readthedocs.io/en/latest/public_server.html>

python环境移植
pip freeze > requirement
pip install -r requirement

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
关于windows下安装,大同小异。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87022

(3)
playboyplayboy
上一篇 2017-09-12 11:16
下一篇 2017-09-12 14:17

相关推荐

  • functools模块,偏函数partial、缓存LRU

    functools模块,偏函数partial、缓存LRU

    2018-04-23
  • 函数与生成器

    函数 由若干语句组成的语句块,函数名,参数列表构成,是组织代码的最小单元,完成一定的功能,结构化编程对代码的最基本的封装,封装的目的是为了复用 函数中没有return,隐式会返回一个none值 定义中的参数列表成为形式参数,只是一种形式表达,简称形参 调用时写的参数是实际参数,是实实在在传入的值,简称实参 函数的定义,只是声明了参数,不会执行,可以进行调用,…

    2018-04-16
  • PYTHON类型注解

    PYTHON类型注解 函数定义的弊端 Python是动态语言,变量随时可以被赋值,且能赋值为不同的类型 Python不是静态编译型语言,变量类型是在运行器决定的 动态语言很灵活,但是这种特性也是弊端 def add(x, y):return x + yprint(add(4, 5))print(add(‘hello’, ‘…

    Python笔记 2018-05-02
  • Python函数、参数及参数解构

    Python函数、参数及参数解构 函数 数学定义:y=f(x),y是x的函数,x是自变量 Python函数 由若干语句块组成的语句块、函数名称、参数列表构成,他是组织代码的最小单元 完成一定的功能 函数的作用 结构化编程对代码的最基本的封装,一般按照功能组织一段代码 封装的目的是为了复用,减少冗余代码 代码更加简洁美观、可读易懂 函数的分类 内建函数,如ma…

    2017-10-16
  • 类的继承

    Edit 类的继承 基本概念 面向对象三要素之一,继承Inheritance 举例: 人类和猫类都继承自动物类 个体继承自父母,继承了父母的一部分特征,但也可以有自己的个性 在面向对象的世界中,以父类继承,就可以直接拥有父类的属性和方法,这样可以减少代码、多复用。子类可以定义自己的属性和方法 class Animal: def shout(self): pr…

    2017-11-15
  • python函数与作用域

    ##函数– 函数— 数学定义:y=f(x),y是x的函数,x是自变量— python函数:由若干语句组成的语句块、函数名称、参数列表构成,它是组织代码的最小单元;完成一定的功能 – 函数的作用— 结构化编程对代码的最基本的封装,一般按照功能组织一段代码— 封装的目的是为了复用,减少冗余代…

    2017-10-17

评论列表(1条)

  • h
    h 2017-09-13 10:53

    配置类型不错,注意排版!