最近公司更换了linux系统的版本,从Ubuntu改为了oracle linux,相关的Python环境也要重新配置,记录一下基本配置的过程。

相关环境

  • 系统:oracle linux7.3

  • 系统自带的python:2.7.5

安装python3.6.3

  • python的多个版本是可以共存的,没必要删除原来的python2,系统预装的一些工具比如yum是依赖python2的;

  • 先安装相关的依赖环境,编译环境等

# 使用yum命令安装,对所有的提问都回答yes
sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc
  • 官网下载python3.6.3
# 进入桌面
$ cd ~/Desktop
$ wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
  • 将下载包解压编译
tar -zxvf Python-3.6.3.tgz
cd Python-3.6.3
  • 编译之前可以设置python安装的位置
# 修改配置文件
sudo vi ./configure
# 找到ac_default_prefix=/usr/local/python3
# 可以修改安装路径
# 创建安装文件夹
sudo mkdir /usr/local/python3
  • 编译安装
# 生成配置文件
./configure
# 编译
make
# 安装
make install
  • 如果出现了successful,说明安装成功;

配置环境变量

当前输入python,发现进入的是python2的环境;输入python3,发现不识别这个命令,说明python3.6.3的安装路径没有加入到系统路径中去;

  • 添加PATH
# 进入python安装文件
cd /usr/local/python3
# 启动命令在bin文件夹中
cd bin
# 输入python3可以启动python3.6.3
  • 将路径添加到系统用户路径中
sudo vi ~/.bash_profile  # 进入只针对该用户的系统路径文件
# 找到PATH=$PATH:$HOME/bin
# 如windows中相似,所有的环境变量路径使用冒号分割
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
# 保存退出
  • 将路径添加到全局用户路径中
# 如果需要对所有的用户都需要支持Python命令,添加全局变量
sudo vi /etc/profiles
# 在脚本的末尾增加
export PATH="/usr/local/python3/bin"
  • 临时执行环境变量,只对当前shell终端有效
shell> export PY_HOME="/usr/local/python3/"
shell> export PATH="$PATH:$PY_HOME/bin"
  • 查看环境变量
$ env   # 查看所有的环境变量
$ echo $PATH # 查看当前登录的用户的环境变量

扩展

  • 修改全局环境变量和用户环境变量

linux系统的sudo命令和普通的如ls命令,其搜索的路径是不一样的,用户命令搜索路径在~/.bash_profile中,如上面添加python的启动路径;sudo命令搜索路径在/etc/sudoers中

# 编辑/etc/sudoers
sudo vi /etc/sudoers
# 找到secure_path
:/secure_path
# 在该路径后面添加更多的搜索路径
  • 将python3设置成默认的python版本
# 删除原来的python连接
cd /usr/bin/
rm python
# 创建python3的软连接
ln -s /usr/local/python3/bin /usr/bin/python
# 输入python发现默认打开python3.6则成功
# 修改yum依赖
vi /usr/bin/yum
# 将第一行/usr/bin/python改为/usr/bin/python2

细节

  • 有时忘记使用root权限编辑配置文件导致无法退出和保存失败;比如修改/etc/sudoers文件;
# 按ctrl+z强制退出
# ls -lah | grep .*
# 查找所有的隐藏文件发现生成了.sudoers.swap文件
# 删除该文件并重新编辑
sudo rm .sudoers.swap
sudo vi -r sudoers
  • 重启主机或执行
source ~/.bash_profile  # 命名生效
  • 测试
# 在任意目录下执行
python3 # 打开python3.6.3环境
# 测试pip
pip3 --version
pip --version # 无效,python2环境没有安装pip

修改linux的pip源

  • 方法一:临时修改
# 在pip后指定源
pip install ipython -i http://mirrors.aliyun.com/pypi/simple/
  • 方法二:永久修改
# 找到~/.pip/pip.conf,如果不存在就创建
# 加入
[global]
timeout = 10 # 设置超时,单位s
index-url = http://mirrors.aliyun.com/pypi/simple/ # 指定优先下载源
extra-index-url= http://pypi.douban.com/simple/ # 第二下载源
[install]
trusted-host= # 可能需要使用https方式通信
mirrors.aliyun.com
pypi.douban.com

Oracle-Linux安装配置python3.6环境的更多相关文章

  1. Linux安装配置go运行环境

    1. 下载go,解压 gz包 wget https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz tar zxvf go1.7. ...

  2. windows和linux下 Python2,Python3 的环境及安装

    目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和 ...

  3. Linux安装配置php环境的方法

    本文实例讲述了Linux安装配置php环境的方法.分享给大家供大家参考,具体如下: 1.获取安装文件: http://www.php.net/downloads.php php-5.3.8.tar.g ...

  4. linux经常使用(一)linux 安装配置 jdk之 找不到安装文件文件夹及source /etc/profile 报unexpected end of file 错误 解决

    linux 安装配置 jdk 应该算是一个非常主要的东西.可是我到如今才自己第一次 正式安装.果然出现了问题.. 问题就是 安装之后 找不到 安装路径 ,进而没法配置环境变量. 现象例如以下: 提示 ...

  5. Oracle linux安装Oracle 11G

    Oracle  linux安装Oracle 11G 系统环境 Oracle linux   5.8.19.6(64位) Oracle     11.2.0.1(64位) 本文档详细介绍Oracle  ...

  6. BizTalk 2013R2 WCF-LOB Oracle Adapter安装配置/问题&解决方法

    BizTalk 2013R2 WCF-LOB Oracle Adapter安装配置/问题&解决方法 安装Oracle Adapter 安装Oracle客户端 BizTalk 2013R2 安装 ...

  7. Linux下配置PHP开发环境

    转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...

  8. windows Sever 2012下Oracle 12c安装配置方法图文教程

    windows Sever 2012下Oracle 12c安装配置方法图文教程 Oracle 12c安装配置方法图文教程,具体内容如下 1.我们开启虚拟机 2.Windows Sever 2012启动 ...

  9. PyCharm配置Python3开发环境

    PyCharm配置Python3开发环境 PyCharm的开发环境是配置在对应的工程中: 一.创建一个Project 工具栏:New - New Project 建议指定一个专门的目录 ,用来存放py ...

随机推荐

  1. Java与算法之(8) - 堆排序

    堆是一种特殊的完全二叉树,其特点是所有父节点都比子节点要小,或者所有父节点都比字节点要大.前一种称为最小堆,后一种称为最大堆. 比如下面这两个: 那么这个特性有什么作用?既然题目是堆排序,那么肯定能用 ...

  2. Grails框架使用指南

    Grails框架使用指南,详解Grails框架!cnxieyang@163.com

  3. bzoj:1703: [Usaco2007 Mar]Ranking the Cows 奶牛排名

    Description     农夫约翰有N(1≤N≤1000)头奶牛,每一头奶牛都有一个确定的独一无二的正整数产奶率.约翰想要让这些奶牛按产奶率从高到低排序.    约翰已经比较了M(1≤M≤100 ...

  4. 【Java学习笔记之十四】Java中this用法小节

    用类名定义一个变量的时候,定义的只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法. 那们类里面是够也应该有一个引用来访问自己的属性和方法纳? 呵呵,JAVA提供了一个很好的东西,就是 t ...

  5. c++(快速排序)

    快速排序是编程中经常使用到的一种排序方法.可是很多朋友对快速排序有畏难情绪,认为快速排序使用到了递归,是一种非常复杂的程序,其实未必如此.只要我们使用好了方法,就可以自己实现快速排序. 首先,我们复习 ...

  6. Genymotion的安装与使用(附百度云盘下载地址,全套都有,无需注册Genymotion即可使用)

    http://blog.csdn.net/scythe666/article/details/70216144 附百度云盘下载地址 :http://pan.baidu.com/s/1jHPG7h8 1 ...

  7. HDU 1562 Oil Deposits

    题目: The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. G ...

  8. 程序员是这样区分Null和Undefined

    Null类型 Null类型是第二个只有一个值的数据类型,这个特殊的值是null.从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时会返回"obje ...

  9. SpringBoot Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

    SpringBoot Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFact ...

  10. 【编程技巧】Ext.QuickTips.init();

    启动悬浮提示(在你验证非法时.和现实提示语句等) 默认情况下悬浮提示没有启动:所以必须加上这句代码