linux系统的python版本_Linux系统下多版本Python管理
一般Linux默认版本都是Python2的版本,现在越来越多的项目使用Python3,我们需要安装不同的Python版本,又不想引起冲突,可以使用Python多版本管理工具
1. 下载pyenv:https://github.com/pyenv/pyenv#installation
// git速度慢,建议电脑代理download下载然后传到服务器/root目录
2. 解压pyenv:yum install -y unzip && unzip pyenv-master.zip
[root@ubuntu2020 ~]#mkdir -p .pyenv/cache
[root@ubuntu2020 ~]#unzip pyenv-master.zip
[root@ubuntu2020 ~]# mv pyenv-master/* .pyenv/
3. 设置环境变量
[root@ubuntu2020 ~]# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
[root@ubuntu2020 ~]# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
[root@ubuntu2020 ~]# echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
[root@ubuntu2020 ~]# exec $SHELL
[root@ubuntu2020 ~]# source ~/.bash_profile
4. 查询可安装版本
[root@ubuntu2020 ~]# pyenv install -l
Available versions:
2.1.3
2.2.3
2.3.7
2.4.0
2.4.1
2.4.2
......
5. 安装Python3相关依赖,以便安装Python3版本
如果缺少相关依赖,会出现以下报错
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
[root@ubuntu2020 ~]# yum install readline readline-devel readline-static -y
[root@ubuntu2020 ~]# yum install openssl openssl-devel openssl-static -y
[root@ubuntu2020 ~]# yum install sqlite-devel -y
[root@ubuntu2020 ~]# yum install bzip2-devel bzip2-libs -y
[root@ubuntu2020 ~]# yum install gcc gcc-c++ -y
6. 安装其他版本Python
[root@ubuntu2020 ~]# pyenv install 3.7.2
WARNING: Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing Python-3.7.2...
Installed Python-3.7.2 to /root/.pyenv/versions/3.7.2
// 这里下载的都是使用国外的服务器,有时候下载失败,可以去官网通过代理手动下载下来
官网下载地址:https://www.python.org/downloads/source/
选则需要版本:Download XZ compressed source tarball
上传到服务器/root/.pyenv/cache目录下即可,这样安装的时候直接读取该目录
[root@ubuntu2020 ~]# cd /root/.pyenv/cache/
[root@ubuntu2020 cache]#ll
total 84404
-rw-r--r-- 1 root root 17212220 May 9 19:25 Python-3.6.10.tar.xz
-rw-r--r-- 1 root root 17049912 May 9 19:25 Python-3.6.5.tar.xz
-rw-r--r-- 1 root root 17042320 May 9 19:25 Python-3.7.2.tar.xz
-rw-r--r-- 1 root root 17246360 May 9 19:25 Python-3.7.6.tar.xz
-rw-r--r-- 1 root root 17869888 May 9 19:25 Python-3.8.2.tar.xz
[root@ubuntu2020 ~]# pyenv versions//查看已安装版本
* system (set by /root/.pyenv/version)
3.7.2
[root@ubuntu2020 ~]# pyenv local
pyenv: no local version configured for this directory
[root@ubuntu2020 ~]# pyenv local 3.7.2
[root@ubuntu2020 ~]# pyenv local// 切换当前目录指定Python版本,切换到其他目录会变成默认Python版本
3.7.2
[root@ubuntu2020 ~]# pyenv versions
system
* 3.7.2 (set by /root/.python-version)
[root@ubuntu2020 ~]# cd /workspace/
[root@ubuntu2020 workspace]# pyenv versions//其他目录还是默认Python
* system (set by /root/.pyenv/version)
3.7.2
使用global全局切换Python版本,这样不用每个目录选择版本了
[root@ubuntu2020 workspace]# cd
[root@ubuntu2020 ~]# pyenv global 3.7.2
[root@ubuntu2020 ~]# pyenv versions
system
* 3.7.2 (set by /root/.python-version)
[root@ubuntu2020 ~]# cd /workspace/
[root@ubuntu2020 workspace]#pyenv versions
system
* 3.7.2 (set by /root/.pyenv/version)
[root@ubuntu2020 workspace]#
--------------------------------------------------------------------------------------------------------------------------------
7. 创建Python虚拟环境,一般可以选择使用virtualenv或者pyenv-virtualenv,我个人喜欢virtualenv(推荐)
不推荐使用virtualenvwrapper,一般线上环境,不同的运行环境通常不会全部使用root,这种把所有虚拟环境集中放在root目录下的放式反而麻烦
安装virtualenv,个人建议不同的Python单独安装该包,这样配合使用pyenv就不用每次都创建虚拟环境指定Python版本了
[root@ubuntu2020 ~]# pip list|grep virtual
You are using pip version 18.1, however version 20.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[root@ubuntu2020 ~]# pip install virtualenv
Looking in indexes: https://mirrors.aliyun.com/pypi/simple
Collecting virtualenv ...
[root@ubuntu2020 ~]# pip list|grep virtual
virtualenv 20.0.20
创建Python3虚拟环境
[root@ubuntu2020 ~]# virtualenv test
created virtual environment CPython3.7.2.final.0-64 in 319ms
creator CPython3Posix(dest=/root/test, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
[root@ubuntu2020 ~]# source test/bin/activate
(test) [root@ubuntu2020 ~]# which python
/root/test/bin/python
创建Python2虚拟环境
[root@ubuntu2020 ~]#pyenv global system
[root@ubuntu2020 ~]#pyenv versions// 此时发现并没有切换回默认版本,因为之前执行过pyenv local,在当前目录生成了一个.python-history文件记录了版本
system
* 3.7.2 (set by /root/.python-version)
[root@ubuntu2020 ~]# ls -al
total 84
....
-rw------- 1 root root 7 May 9 20:06 .python_history
-rw-r--r-- 1 root root 7 May 9 20:08 .python-version
[root@ubuntu2020 ~]# pyenv local system //切换到默认版本,然后删除该文件,以后都用 pyenv global 切换版本即可
[root@ubuntu2020 ~]# pyenv versions
* system (set by /root/.python-version)
3.7.2
[root@ubuntu2020 ~]# pip list|grep virtual // 默认的Python已经安装了该包
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
virtualenv 20.0.20
WARNING: You are using pip version 19.1.1, however version 20.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[root@ubuntu2020 ~]# virtualenv demo
created virtual environment CPython2.7.5.final.0-64 in 427ms
creator CPython2Posix(dest=/root/demo, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator
--------------------------------------------------------------------------------------------------------------------------------
使用pyenv-virtualenv来管理虚拟环境
下载文件包:https://github.com/pyenv/pyenv-virtualenv
上传到服务器,解压到/root/.pyenv/plugins/pyenv-virtualenv目录
或者直接使用git拉去下来,如果网络允许的前提下
[root@ubuntu2020 ~]# yum install git
[root@ubuntu2020 ~]# git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 2064, done.
remote: Total 2064 (delta 0), reused 0 (delta 0), pack-reused 2064
Receiving objects: 100% (2064/2064), 580.31 KiB | 25.00 KiB/s, done.
Resolving deltas: 100% (1413/1413), done.
设置bash shell环境变量,其他请看github说明
[root@ubuntu2020 ~]# echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
[root@ubuntu2020 ~]# exec $SHELL
创建不同版本寻环境,pyenv virtualenv 版本号 环境名。注意,此种放式类似virtualenvwrapper,不是很推荐(环境都安装在 /root/.pyenv/versions/ 里)
[root@ubuntu2020 ~]# pyenv virtualenv 3.7.2 py-testcreated virtual environment CPython3.7.2.final.0-64 in 158ms
creator CPython3Posix(dest=/root/.pyenv/versions/3.7.2/envs/py-test, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Looking in links: /tmp/tmpis2fllcc
Requirement already satisfied: setuptools in /root/.pyenv/versions/3.7.2/envs/py-test/lib/python3.7/site-packages (46.1.3)
Requirement already satisfied: pip in /root/.pyenv/versions/3.7.2/envs/py-test/lib/python3.7/site-packages (20.1)
[root@ubuntu2020 ~]# pyenv virtualenv system py-test-2.7
created virtual environment CPython2.7.5.final.0-64 in 206ms
creator CPython2Posix(dest=/root/.pyenv/versions/py-test-2.7, clear=False, global=False)
seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/root/.local/share/virtualenv/seed-app-data/v1.0.1)
activators PythonActivator,CShellActivator,FishActivator,PowerShellActivator,BashActivator
Installing pip from https://bootstrap.pypa.io/get-pip.py...
...
linux系统的python版本_Linux系统下多版本Python管理相关推荐
- linux如何查看python的版本_Linux环境下如何查看Python版本号
原博文 2020-08-10 16:43 − 方法一.直接执行命令python,就可以查看python的版本信息. 退出用exit() 方法二.利用命令python -V,注意V要大写. 方法三.利用 ...
- python查找文件夹下的文件,python 查找文件夹下所有文件 实现代码 -电脑资料
复制代码代码如下: def find_file_by_pattern(pattern='.*', base=".", circle=True): '''''查找给定文件夹下面所有 ...
- linux查看mysql版本_Linux系统中查看MySQL版本的五种方法
1.在Linux终端窗口中,输入mysql -V查看MySQL版本信息[sky@qin ~]# mysql -V mysql Ver 14.14 Distrib 5.1.29-rc, for pc-l ...
- linux中python安装_linux环境下的python安装过程图解(含setuptools)
这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...
- linux下查java版本_linux如何检查Java版本
Java是世界上最受欢迎的编程语言之一,用于构建不同类型的跨平台应用程序.本文介绍了如何使用命令行检查Linux系统上安装了Java的哪个版本.当安装需要特定版本的Java的应用程序时,这很有用. J ...
- update yum 到指定版本_linux yum安装指定版本mysql或php
1.下载mysql rpm包 cd /usr/local/src wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noar ...
- linux 自动安装mysql数据库_linux系统下源码安装mysql5.6数据库
linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...
- linux svn上传目录_Linux系统下svn更新自动同步到web目录
一.在web目录中checkout版本库 这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步.把刚才checkout的版本库删掉,我们来一次比较正式的checkout: svn ...
- 凝思磐石linux系统怎么切双屏_linux (ubuntu) 下双屏显示解决?
早就有心弄个显示器,把笔记本的外接上,倒不是说非要2个屏幕来工作如何如何?只是因为我的本子是14寸的屏,显卡是ati9600,而分辨率达到了1400X1050. 就这个分辨率,我看文本比较多,实在是太 ...
- linux 存储映射lun 给_LINUX系统下添加映射存储LUN
LINUX系统下添加映射存储LUN(无需重启) 背景:Oracle rac环境 添加新实例,重新划分存储空间,从存储映射新的LUN. 问题:映射后,linux操作系统无法识别新的LUN,不能重启系统, ...
最新文章
- 京东程序员被同事吐槽:需求排期长拖黄业务,都研发的一些啥玩意
- Python 之vim编写python自动补全
- Python应用02--批量往Mysql数据库插入数据
- 3 SAP STMS跨服务器传请求号
- Leetcode刷题记录[java]——561 Array Partition I
- @程序员,如何轻松实现数据可视化?
- win11升级到一半撤销怎么办 windows11升级到一半撤销的解决方法
- MySQL常用命令集锦
- 当我讲容灾交付前,我先说点啥?
- Cocos2d-x 引擎概要
- Android11安装谷歌,Android 11正式版
- LeetCode Problems 903
- (32位汇编 九)ADC/SBB/XCHG/MOVS/STOS/REP
- 初学者之eclipse常用快捷键总结
- 阿帕网几台大型计算机网络,阿帕网-互联网的鼻祖(中) | 午夜猫
- css3中-moz、-ms、-webkit、 - o -各什么意思
- win10控制面板快捷键_你没玩过的全新版本 Win10这些操作你知多少
- 【转】英文论文审稿意见汇总
- 重启计算机关闭账户,电脑开机重启提示您的账户已被停用怎么办
- 解决tar (child): gzip: Cannot exec: Too many levels of symbolic links
热门文章
- cad角度命令怎么输入_CAD中用好这个命令,任意等分角度不再是难事
- 网易云音乐基于用户的推荐系统
- php 错误503的原因,CentOS + Apache2.4 + PHP5.6 FPM报503错误
- gitlab 503 错误的解决方案
- Keil5改黑色炫酷背景
- android设置透明主题后背景为黑色,android – 活动应该是透明的,但有黑色背景
- 我的msn的博客 欢迎大家点击
- 数字战疫|央视聚焦闵行,有信云助力上海数千家企业复工复产
- 面向对象与面向过程的理解——个人想法
- 月薪3千与3万文案的区别!一字千金就体现在细微之处