Linux下Python编译安装
1.安装python3
1.1下载python源码包
网址:https://www.python.org/downloads/release/python-362/
下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
1.1.1安装python前的库环境,非常重要
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
1.2下载,解压安装源码包
1、configure
这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:
./configure --prefix=/usr
上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。
同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过允许 ./configure --help 察看详细的说明帮助。
2、make
这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。
如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。
make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。
make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。
3、make install
这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)
安装python3具体步骤:
1.下载python3源码,选择3.6.7因为ipython依赖于>3.6的python环境
下载在/opt/文件夹下面
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
2.解压缩源码包,去除xz后缀
xz -d Python-3.6.7.tar.xz
3.解压缩源码包,去除.tar后缀
tar -xf Python-3.6.7.tar
4.解决编译安装python3所需的软件依赖 ******** 很重要
备注:解决这些依赖关系后期才能正常运转python3.6,
如果不解决,会出现各种报错信息,此时还得重新编译python3.6
看上面安装链接
5.开始进行编译安装
分为三部曲
1.调用源码包路径底下的configure这个脚本文件
./configure --prefix=/opt/python36/
指定软件安装的位置/opt/python36 下面
2.执行make指令,开始编译 (此步骤还不会生成/opt/python36这个文件夹)
#这个编译是个什么鬼?
-翻译 python解释器是对代码进行一行一行的翻译,并且转化成机器码去执行
print('hello world ')
python 脚本.py
-编译 ,编译型的语言,在运行代码之前,有一个编译的过程,(将代码,编译转化成一个二进制文件)
- c
- c++
- java
- golang
main.go
fmt.Println('hello world')
go run main.go
go build main.go #编译生成一个可执行命令
-在window底下 生成一个 main.exe
- main
3. make install 安装软件 (此步才是安装软件的过程)
-才会生成一个 /opt/python36这个软件安装路径
make install
6.编译安装ok,没有报错后,就可以正常使用python3了
7.快捷使用python3.6的方式
以下配置方式,二选一,请你选path配置
1.软连接(这一步很麻烦,并且不适用于virtualenv的创建)
ln -s /opt/python36/bin/python3.6 /usr/bin/python3 #但是这一步还没有pip
ln -s /opt/python36/bin/pip3 /usr/bin/pip3
2.环境变量的配置
1.echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2.配置python36的目录,加入环境变量
强调!!!
强调!!!
强调!!!
因为path的路径查找是有优先级顺序的!!!
并且在配置virtualenv的时候,优先以先找到的python环境为base环境
#请将python36的目录放到path的第一层
/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:
3.配置环境变量,永久生效,写入到文件/etc/profile中,每次登录就生效
vim /etc/profile #将此配置写到最低行
PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
source /etc/profile #读取这个文件,让python3生效
8.此时可以正确使用python3啦!

#yum install gcc -y
./configure --prefix=/opt/python
make && make install
---------------------
用python查看默认安装路径
>>> import sys
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6',
'/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
--------------------
python3.4默认没添加path
在/etc/profile最后一行添加
export PATH=$PATH:/opt/python/bin
然后
source /etc/profile #python快捷path就被改了,yum用的python2,麻烦

1.2.3 牛逼的python Tab自动补全
下载setuptool 3.4以上已经默认安装了easy_install-3.4
下载地址:
https://pypi.python.org/pypi/setuptools/36.2.7
下载命令:
wget https://pypi.python.org/packages/07/a0/11d3d76df54b9701c0f7bf23ea9b00c61c5e14eb7962bb29aed866a5844e/setuptools-36.2.7.zip#md5=b9e6c049617bac0f9e908a41ab4a29ac
解压:
unzip setuptools-36.2..zip
编译:
python3 setup.py build
python2 setup.py build
无误后安装:
python3 setup.py install
python2 setup.py install
没什么用
下载readline
#yum install -y readline-devel -y
#pip install readline
tab补全
#python startup file
import readline,rlcompleter
#tab completion
readline.parse_and_bind('tab:complete')
----------------------------
python历史记录
#history file
import os
history_file = os.path.join(os.environ["HOME"],".pythonhistory")
[root@mm_local ~]# echo "export PYTHONSTARTUP='/root/.pythonstartup'" >> /root/.bashrc
[root@mm_local ~]# source /root/.bashrc
[root@mm_local ~]# cat /root/.pythonstartup
import os
import readline
import rlcompleter
import atexit #tab completion
readline.parse_and_bind("tab: complete") #history file
history_file = os.path.join(os.environ["HOME"],".pythonhistory")
try:
readline.read_history_file(history_file)
except IOError:
pass
atexit.register(readline.write_history_file,history_file) del os,history_file,readline,rlcompleter
[root@mm_local ~]# python
Python 2.7. (default, Jun , ::)
[GCC 4.4. (Red Hat 4.4.-)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path<tab> #按tab键就可以自动补全了 [root@mm_local ~]# python
>>>
>>> sys.path #按上下方向键即可找到历史命令
整体代码
加入python的启动环境变量,永久生效自动补全
只需要启动时执行一条命令即可 import rlcompleter, readline
readline.parse_and_bind('tab:complete')
可以将上述的代码存于~/.pythonrc.py文件中。 然后,在~/.bashrc中设置 export PYTHONSTARTUP=~/.pythonrc.py
这样,每次启动终端,bash就会设置PYTHONSTARTUP这个环境变量,然后,python启动时就会使用这个变量指定的文件中的初始化代码。 在python解释器中,输入一个变量的一部分,或者变量后面加句点,再按TAB键就可以看到自动补全的威力。
Linux下Python编译安装的更多相关文章
- Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...
- linux下python+pycharm安装
安装环境: vmware 12 centos 6.8 一.安装python3.5 默认情况下,linux下是默认使用2.x版本的,现在我们要安装3.x版本,具体操作如下 1.去官网下载安装包.(这 ...
- C++ Boost在Windows和Linux下的编译安装
再debian下直接apt-get install gcc g++就可以了.按照类似的逻辑,再Fedora下yum install gcc g++ 报告无法找到g++包. 差了一下,原来这个包的名字叫 ...
- Linux下memcache编译安装与基本使用
memcache是一套分布式的高速缓存系统,特点为key-value 存储 一.在 linux 编译安装memcache.redis等,需要 gcc,make,cmake,autoconf,libto ...
- Nginx 1.9.7.2 + PHP 5.6.18(FastCGI)在CentOS Linux下的编译安装
本文参考张宴的Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]完成.所有操作命令都在CentOS 6.x 64位操作系统下实践 ...
- Linux下mysql编译安装
一.下载安装包 因为编译安装mysql需要cmake所以先编译安装cmake,这里都一起下载下来 下载cmake,网址https://cmake.org/download/ 下载mysql,网址htt ...
- linux下安编译安装redis
1.先进入要安装到的目录,比如我要把redis安装到/usr/local/redis下,那就先进入/usr/local cd /usr/local 2.然后下载安装包,并解压 wget http:// ...
- Linux下单独编译安装PHP扩展包
首先进入PHP源码目录,比如这个: root@vultr:~/php-/ext/soap# 运行下PHP目录下的phpize,接着就可以和普通代码一样,配置,编译,安装了(注意:有些库可能可以配置参数 ...
- centOS linux 下nginx编译安装详解
Nginx的官方网站是 www.nginx.org Nginx的下载地址是:http://nginx.org/en/download.html 由 于官网的设计非常简洁不大气不上档次,所以我们 ...
随机推荐
- 2017-3-4 leetcode 414 485 495
虽说周末要早起来着,但是日子过得有点奇怪,一不小心就忘掉了... leetcode414 https://leetcode.com/problems/third-maximum-number/?tab ...
- 杂项-建模:BIM
ylbtech-杂项-建模:BIM 建筑信息模型是建筑学.工程学及土木工程的新工具.建筑信息模型或建筑资讯模型一词由Autodesk所创的.它是来形容那些以三维图形为主.物件导向.建筑学有关的电脑辅助 ...
- [MySQL] 查询一段时间记录
24小时内记录(即86400秒) $sql="SELECT video_id,count(id)as n FROM `rec_down` WHERE UNIX_TIMESTAMP(NOW() ...
- leetcode 系列文章目录
leetcode 系列文章目录 0. 两数之和1. 两数相加 2. 无重复字符的最长子串 3. 寻找两个有序数组的中位数 4. 最长回文子串 5. Z 字形变换 6. 整数反转 7. 字符串转换整数 ...
- JavaScript DOM编程艺术(第2版)学习笔记2(4~6章应用实例)
本书的第4章使用第3章学到的操作DOM的方法和属性写了一个展示图片的网页,并在第5,6章对代码进行了优化. 第一版,搭建网页的静态结构,包括一级标题<h1>,无序列表清单<ul> ...
- DWZ选项卡
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- 。net内存优化
1.尽量减少和避免不必要的对象 2.优化算法和数据结构 3.采用非托管代码或者模块编写数据处理逻辑 4.NET应用程序的内存一定程度上受垃圾回收的影响.并指出,一些数据结构如List,系统会分配多余的 ...
- ___Manacher(线性回文子串处理算法)
昨晚的bc做得好忧郁----- 第一题改了好久好久好久----等改完发现比赛已经结束了(发现是枚举子集的位运算那儿写错了--) 第二题是判断能否将一个字符串划分成三段回文串 今天学了一点点 Mana ...
- mongodb配置文件详解
logpath=/app/mongo/mongolog/mongo.log dbpath=/app/mongo/mongodata verbose = true #vvvv = true #此项会产生 ...
- Python内置数据结构之字典dict
1. 字典 字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下.键可能是数(整数索引).字符串或元组.字典(日常生活中的字典和Python字典)旨在让你能够轻松地找到特定的单 ...