iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >【Python】03、python多版本
  • 934
分享到

【Python】03、python多版本

版本Pythonpython 2023-01-31 07:01:40 934人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

一、pyenv介绍        Centos6系统会自带一个较低版本的python,一般不使用系统自带的Python版本,因为系统很多组件依赖于python比如yum,如果我们随意升级或者安装了些有冲突包可能会影响系统环境;我们需要再安装

一、pyenv介绍

        Centos6系统会自带一个较低版本的python,一般不使用系统自带的Python版本,因为系统很多组件依赖于python比如yum,如果我们随意升级或者安装了些有冲突包可能会影响系统环境;我们需要再安装较高版本的python,而且在开发多个项目时,可能需要多个版本的Python,此时在进行Python版本切换时会比较麻烦,pyenv就提供了一种简单的方式。

pyenv是一个能简易地在多个Python版本中进行切换的工具,它简单而优雅。

项目地址:https://GitHub.com/yyuu/pyenv

pyenv的功能:

  • 安装python解释器

  • 进行全局的Python版本切换

  • 为单个项目提供对应的Python版本

  • 使用环境变量能让你重写Python版本

  • 能在同一时间在不同版本间进行命令搜索

拥有以下特点:

  • 只依赖python本身

  • 将目录添加进$PATH即可使用

  • 能够进行virtualenv管理(通过插件


二、安装pyenv

1、pyenv通过bash编写,不依赖任何程序;安装程序只依赖git

[root@node3 ~]# yum install git

2、安装pyenv

[root@Node3 ~]# curl -L Https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--      0     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     98  2099   98  1969    0     0    767      0  0:00:02  0:00:02 --:--:--  13104  2099  104  2099    0     0    818      0  0:00:02  0:00:02 --:--:--  1425
Initialized empty Git repository in /root/.pyenv/.git/
remote: Counting objects: 4060, done.
remote: Compressing objects: 100% (1658/1658), 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="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"

      pyenv的安装路径是由$PYENV_ROOT这个环境变量设定的(默认没设定),如果没设定默认安装路径为~/.pyenv

[root@Node3 ~]# ls -a
.                .bash_history  .bashrc      install.log.syslog  .tcshrc
..               .bash_loGout   .cshrc       .pki                .viminfo
anaconda-ks.cfg  .bash_profile  install.log  .pyenv              .Xauthority
[root@Node3 ~]# ls .pyenv/           #卸载pyenv只需要删掉这个目录就可以
bin           completions  LICENSE   pyenv.d    src
CHANGELOG.md  CONDUCT.md   Makefile  README.md  test
COMMANDS.md   libexec      plugins   shims      versions

3、配置环境变量

[root@Node3 ~]# vi /etc/profile.d/pyenv.sh

[root@Node3 ~]# cat /etc/profile.d/pyenv.sh
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

[root@Node3 ~]# . /etc/profile.d/pyenv.sh 
[root@Node3 ~]# pyenv                           #pyenv就可以使用了
pyenv 1.0.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/yyuu/pyenv#readme


三、安装python

    使用pyenv安装python,pyenv会下载安装python最新稳定版,在安装Python之前我们还需要安装编译工具和python的依赖包

1、安装编译工具

[root@Node3 ~]# yum install GCc make patch

2、安装python依赖包

[root@Node3 ~]# yum install gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel

3、安装python

[root@Node3 .pyenv]# pyenv install --list   # 列出所有可以安装的python解释器
Available versions:
  2.1.3
  
  3.5.1
  3.5.2          # 没带字母的是python原生自带的解释器,我们使用这个最新稳定版的
  3.6.0b3
  3.6-dev
  3.7-dev
  anaconda-1.4.0
  anaconda-1.5.0
  anaconda-1.5.1

  anaconda3-4.1.1
  ironpython-dev

  ironpython-2.7.6.3
  jython-dev
  jython-2.5.0
 
  jython-2.7.1b3
  miniconda-latest
  miniconda-2.2.2

  miniconda3-4.0.5
  miniconda3-4.1.11
  
  pypy-c-jit-latest
  pypy-c-nojit-latest
  pypy-dev
  pypy-stm-2.3
  pypy-portable-2.3.1
  
  pypy-portable-5.4
  pypy-portable-5.4.1
  pypy-1.5-src
  pypy-1.5
  pypy-1.6
  
  pypy2-5.4.1-src
  pypy2-5.4.1
  pypy3-dev
  pypy3-portable-2.3.1
 
  pypy3.3-5.5-alpha-src
  pypy3.3-5.5-alpha
  pyston-0.5.1
  stackless-dev

  stackless-3.4.2

[root@Node3 ~]# pyenv install 3.5.2    #安装python对应的版本
Downloading Python-3.5.2.tar.xz...
-> https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz  
   # 因为要从外国网站上下载所有会很慢,我们也可以在~/.pyenv目录下新建一个cache目录,
     自己下载好Python的安装包(需要和上面download 的版本格式一样),放在chache目录下,pyenv就不会再去网站上下载了 
Installing Python-3.5.2...
patching file Lib/venv/scripts/posix/activate.fish
Installed Python-3.5.2 to /root/.pyenv/versions/3.5.2   #python被安装在这个目录下

[root@Node3 ~]# pyenv versions                #列出所有可用python版本
* system (set by /root/.pyenv/version)
  3.5.2


四、pyenv的使用

[root@Node3 ~]# pyenv --help
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
               #在当前路径创建一个.python-version,以后进入这个目录自动切换为该版本 
   global      Set or show the global Python version       
               #设置全局默认的python版本
   shell       Set or show the shell-specific Python version  
               #在当前shell的session中启用某个Python版本,优先级高于global,local 
   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  
               #显示当前正在使用Python版本
   versions    List all Python versions available to pyenv   
               #显示所有可用的Python版本
   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/yyuu/pyenv#readme

pyenv local 版本号:

       在当前路径下创建一个.python-version的文件,以后进入这个目录或子目录会自动把python切换的为该版本;可以通过删除 `.python-version`恢复默认Python版本

[root@Node3 ~]# cd /tmp
[root@Node3 tmp]# python --version
Python 2.6.6
[root@Node3 tmp]# pyenv local 3.5.2     #切换为3.5.2的版本
[root@Node3 tmp]# python --version      #成功
Python 3.5.2
[root@Node3 tmp]# pyenv version
3.5.2 (set by /tmp/.python-version)
[root@Node3 tmp]# cat .python-version
3.5.2

[root@Node3 tmp]# cd ..            
[root@Node3 /]# pyenv version        #在别的目录python的版本还是系统自带的
system (set by /root/.pyenv/version)

[root@Node3 /]# cd /tmp
[root@Node3 tmp]# mkdir test          
[root@Node3 tmp]# cd test
[root@Node3 test]# pyenv version      #Pyenv local对子目录也有效
3.5.2 (set by /tmp/.python-version)
[root@Node3 test]# python -V
Python 3.5.2

[root@Node3 tmp]# pyenv local system     #切换回系统自带的版本
[root@Node3 tmp]# python --version
Python 2.6.6

注意:第一次设置pyenv local需要重新读取PATH环境变量才生效


pyenv global 版本号:设置全局默认的python版本,注意永远不要使用这个命令


pyenv virtualenv 版本号 项目名称或虚拟环境名:为此项目设置一个虚拟环境

[root@Node3 ~]# pyenv virtualenv 3.5.2 magedu
Ignoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use --upgrade to upgrade): setuptools in /root/.pyenv/versions/3.5.2/envs/magedu/lib/python3.5/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /root/.pyenv/versions/3.5.2/envs/magedu/lib/python3.5/site-packages

[root@Node3 ~]# pyenv versions
* system (set by /root/.pyenv/version)
  3.5.2
  3.5.2/envs/magedu        #
  magedu                   #为了兼容旧版本的pyenv

pyenv uninstall 版本号或虚拟环境名或项目名称:卸载某个版本, 包括虚拟环境

            用来创建隔离的python环境,处理python环境的多版本和模块依赖。

root@Node3 ~]# pyenv uninstall magedu
pyenv-virtualenv: remove /root/.pyenv/versions/3.5.2/envs/magedu? y   
[root@Node3 ~]# pyenv versions
  system
* 3.5.2 (set by /root/.python-version)

我们需要搞清楚pyenv 和virtualenv分别是干什么的。

       pyenv可以帮助你在一台开发机上建立多个版本的python环境, 并提供方便的切换方法。

       virtualenv则提供了一种功能, 就是将一个目录建立为一个虚拟的python环境, 这样的话, 用户可以建立多个虚拟环境, 每个环境里面的python版本可以是不同的, 也可以是相同的, 而且环境之间相互独立。

如果解释得还不是很清楚的话,我们举例说明。

       首先我们可以用pyenv 安装多个python 版本, 比如安装了2.5, 2.6, 3.3 三个版本。 用户可以随意切换当前默认的python版本。 但这时候, 每个版本的环境仍是唯一的, 如果我们想在环境中安装一些库的话, 还是会导致这个版本的环境被修改。 这个时候, 如果我们用virtual env去建立虚拟环境, 就可以完全保证系统路径的干净。无论你在虚拟环境中安装了什么程序, 都不会影响已安装版本的系统环境


五、python IDE(集成开发环境)

PyCharm推荐,(写大型项目时)

idea


1、ipython

        ipython是一个 python 的交互式 shell,比默认的python shell 好用得多,支持命令自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。

[root@Node3 ~]# mkdir magedu        #安装包时进入一个虚拟环境,保持原版本python环境的干净
[root@Node3 ~]# cd magedu
[root@Node3 magedu]# pyenv local magedu
(magedu) [root@Node3 magedu]# pyenv version
magedu (set by /root/magedu/.python-version)
(magedu) [root@Node3 magedu]# pyenv versions
  system
  3.5.2
  3.5.2/envs/magedu
* magedu (set by /root/magedu/.python-version)     

(magedu) [root@Node3 magedu]# pip install ipython

    此时发现pip安装软件包也比较慢,因为pip会去pypi官网下载软件包,我们取消,配置pip使用国内的镜像站。

(magedu) [root@Node3 magedu]# mkdir ~/.pip
(magedu) [root@Node3 magedu]# vim ~/.pip/pip.conf

(magedu) [root@Node3 magedu]# cat ~/.pip/pip.conf
[global]         #全局配置    
timeout = 6000   #超时时间
index-url = http://mirrors.aliyun.com/pypi/simple/   #镜像地址

[install]
trusted-host=mirrors.aliyun.com    #信任该网站上的包

配置完成后再安装ipython速度飞快。

(magedu) [root@Node3 magedu]# ipython
Python 3.5.2 (default, Nov 11 2016, 21:25:01) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]:

2、jupyter

         可以让浏览器使用ipython的环境    

(magedu) [root@Node3 magedu]# pip install jupyter

(magedu) [root@Node3 magedu]# jupyter --help
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]
               [--paths] [--JSON]
               [subcommand]

Jupyter: Interactive Computing

positional arguments:
  subcommand     the subcommand to launch

optional arguments:
  -h, --help     show this help message and exit
  --version      show the jupyter command's version and exit
  --config-dir   show Jupyter config dir
  --data-dir     show Jupyter data dir
  --runtime-dir  show Jupyter runtime dir
  --paths        show all Jupyter paths. Add --json for Machine-readable
                 format.
  --json         output paths as machine-readable json

Available subcommands: console kernelspec migrate nbconvert nbextension
notebook Qtconsole serverextension troubleshoot trust

运行jupyter noterbook:

(magedu) [root@Node3 magedu]# jupyter notebook --ip=0.0.0.0  #让notebook监听在0.0.0.0,默认监听localhost,默认端口为8888
[I 10:56:18.364 NotebookApp] Serving notebooks from local directory: /root/magedu
[I 10:56:18.365 NotebookApp] 0 active kernels 
[I 10:56:18.365 NotebookApp] The Jupyter Notebook is running at: http://0.0.0.0:8888/
[I 10:56:18.365 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 10:56:18.365 NotebookApp] No WEB browser found: could not locate runnable browser.
[I 10:56:28.516 NotebookApp] 302 GET / (192.168.10.10) 1.19ms   #客户端浏览器访问信息

现在用浏览器访问:192.168.10.3:(8888)     #192.168.10.3为Node3的ip

wKioL1gmheKwhYKDAADwpNkEcrQ803.pngwKiom1gmibvRUEOuAAEfBD7hEhU998.png

分别看下这些功能:

 1)新建文档

wKioL1gmijWy8KJtAADWwPHK3QM060.png

                功能强大的编辑器

2)远程终端

wKiom1gmiqmgWjW-AACgClLjJBk972.png

                                     网页版的远程终端

3)网页版的ipython

wKioL1gmi-DQ8bD-AADnPnU1IBw388.png

               网页版的ipython方便做演示

这个jupyter notebook的功能有点高上大的感觉。

--结束END--

本文标题: 【Python】03、python多版本

本文链接: https://www.lsjlt.com/news/191068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【Python】03、python多版本
    一、pyenv介绍        CentOS6系统会自带一个较低版本的python,一般不使用系统自带的python版本,因为系统很多组件依赖于python比如yum,如果我们随意升级或者安装了些有冲突包可能会影响系统环境;我们需要再安装...
    99+
    2023-01-31
    版本 Python python
  • Python GUI 03----But
    1.一个简单的Button应用 from tkinter import * #定义Button的回调函数 def helloButton(): print ('hello button') root = Tk() #通过comma...
    99+
    2023-01-31
    Python GUI
  • Python 03
    刚才我们提到了,可以在已有类的基础上创建新类,这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来,从而减少重复代码的编写。提供继承信息的我们称之为父类,也叫超类或基类;得到继承信息的我们称之为子类,也叫派生类或衍生类。子...
    99+
    2023-01-31
    Python
  • 多版本python切换
     打开终端分别输入下面两条命令: sudo update-alternatives --install /usr/bin/python python /usr/bin/python2...
    99+
    2023-01-31
    版本 python
  • 多版本切换python
    Python 安装包去官网自行下载: https://www.python.org/downloads/mac-osx/Mac os 自带python, 但我记得是python2.7版本在选择安装包时候避免使用太新的版本. 配置环境:$ v...
    99+
    2023-01-31
    版本 python
  • python多版本管理(pyenv)
    安装python构建中的依赖库 yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel pyenv 安装 使...
    99+
    2023-01-31
    版本 python pyenv
  • pyenv管理多版本python
    安装不同的python版本并不是一件易事,更何况想在同一主机上来回切换不同版本的python是难上加难!大家都知道多版本会导致互相干扰,但是不是不不能解决呢??确切回答:不是,因为有一个学习python的好帮手pyenv来管理不同的pyth...
    99+
    2023-01-31
    版本 pyenv python
  • Python多版本神器-Pyenv
    Python多版本神器-Pyenv一、简介 使用pyenv可以在一个操作系统上使用多个python版本,自由切换,无比顺畅。它的使用不依赖于Python,是一个简单、独立的纯 shell 脚本工具。二、Pyenv安装 1 切换到root用户...
    99+
    2023-01-31
    神器 版本 Python
  • 多版本python下,安装pip
           前天在CentOS中安装了python2.7.12和python3.5.2,今天要为两个版本安装pip,从官方上下载了get-pip.py,使用python get-pip.py,出现错误,无法安装。通过查找原因,总算是安装上...
    99+
    2023-01-31
    版本 python pip
  • Mac安装多个python版本
       Mac OS里面的Python默认为2.7版本,开发的原因需要安装Python3,又不能把2.7卸载掉,所以就需要多版本之间共存。     如果喜欢权威官方的介绍和指导,请移步:https://github.com/yyuu/pye...
    99+
    2023-01-31
    多个 版本 Mac
  • 【Python基础 03】变量的基本使用
    程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建 等号(=)用来给变量赋值 = 左...
    99+
    2023-01-31
    变量 基础 Python
  • Linux中多版本Python与virt
    生产环境中,我们经常会碰到需求不同版本Python的情况,如机器中已经安装Python2,而且有些业务是基于Python2的,但是我们又想使用Python3该怎么办呢? 这种情况下,我们不要动原来的Python2版本的环境!请按照下面的步骤...
    99+
    2023-01-31
    版本 Linux virt
  • Python-爬虫03:urllib.r
    目录 1. urllib.request的基本使用 1.1 urlopen 1.2. 用urlopen来获取网络源代码 1.3. ur...
    99+
    2023-01-30
    爬虫 Python urllib
  • 多个python中更改默认python版本(windows)
    前言: 我的电脑里安装了两个python。分别是python3.12和python3.8。它默认是运行python3.12,有一天我想把它改成默认运行python3.8。该如何做呢? 刚开始我 1. 查看当前已安装python版本和默认使用...
    99+
    2023-09-05
    python 开发语言
  • Python多版本切换工具-Pyenv
    为了安装Anaconda科学计算环境,控制好python版本,今天上午总算折腾好了。 学习python有时希望在python2.7环境下,有时希望在python3.4环境下,该怎么办呢? Anconda的包也不知道适合在什么环境下工作?...
    99+
    2023-01-31
    版本 工具 Python
  • windows下多个python版本共存
    一、同时装了Python3和Python2,怎么区分    了解python的人都知道python有2.x版本和3.x版本,而python3.x版本不向下兼容,但是根据具体的需要,有时候要2.x和3.x共存,python共存本身没有问题,只...
    99+
    2023-01-31
    多个 版本 windows
  • Mac上管理多个Python版本
    如果您想在Mac上管理多个Python版本,您可以使用pyenv这个工具。它可以让您轻松地安装、切换和卸载不同的Python版本²⁴。 要安装pyenv,您可以使用Homebrew这个包管理器。在终端中输入以下命令: brew update...
    99+
    2023-08-30
    macos python 开发语言
  • 如何安装多个版本的python,python可以装两个版本吗
    这篇文章主要介绍了可不可以在同一台计算机上安装多个python版本,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 1、不同版本的python不能安装到同一台计算机上 可以的,...
    99+
    2023-09-22
    小发猫
  • 【Python2】03、Python对象
    一、Python对象的相关术语      Python中一切皆对象,python程序中保存的所有数据都是围绕对象这个概念展开的;所有的对象都是由类实例化而来的,只不过这些类有些是python内置的类;例如,整数和浮点数,字符串都是由pyth...
    99+
    2023-01-31
    对象 Python
  • pyenv安装与使用-多版本python
    说明:由于centos或者RHEL操作系统自带的python一般都比较低,centos6 自带的python版本都是2.6.6,但是现在一般python使用的版本都是2.7版本,以前总在操作上源码升级python,但是这样会导致的yum等利...
    99+
    2023-01-31
    版本 pyenv python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作