centos7安装python3 以及tab补全功能

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

cd /opt/

wget 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 --skip-broken 

安装好python后解压

tar -xvf Python-3.6.2.tgz

切换源码目录

cd Python-3.6.2.tgz    (文件  绿色代表可执行,可通过ll 查看,文件权限含有x的即为可执行)

下面为编译且安装

 

 

1.2下载,解压安装源码包

 

1、configure

这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:

释放编译文件makefile,这个文件就是用来编译且安装的:

我们可以指定安装到opt/python36   

./configure --prefix=/opt/python36

 

#./configure --prefix=/usr
prefix指定文件路径

上面的意思是将该软件安装在 /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 (在这一步生成/opt/python36/)

这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)

 4.配置python3.6的环境变量(二选一)

   (1)配置软连接

ln -s 目标文件 软连接文件

ln -s  /opt/python36/bin/pip3   /usr/bin/python3

此时还没有pip3

ln -s /opt/python36/bin/pip3  /uer/bin/pip3

 

   (2)配置path环境变量

echo $PATH查看环境变量

1.[root@bogon bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin:/root/bin

通过pwd命令查看python当前目录的路径

2

[root@bogon bin]# pwd
/opt/python36/bin

3.修改path,#这个变量赋值操作,只是临时生效,需要写入到文件,永久生效

PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin:/root/bin:/opt/python36/bin(:/opt/python36/bin    在后面添加python36的path)

#linux有一个全局个人配置文件

/etc/profile/  vimj进入这个文件

添加PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin:/root/bin:/opt/python36/bin(:/opt/python36/bin

退出 并source/etc/profile

 

建一个django

[root@bogon /]# cd /opt
[root@bogon opt]# django-admin startproject mysite

 

 

wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
xz -d Python-3.6.7.tar.xz
tar -xf Python-3.6.7.tar
复制代码
#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.7.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.3 (default, Jun 5 2013, 22:40:26)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] 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键就可以看到自动补全的威力。
posted @ 2019-10-08 20:48  你我皆牛马  阅读(138)  评论(0)    收藏  举报