python3安装pip3-环境准备—之—linux下安装python3和pip3

前言

centos7 自带有 python,但是却是 python2 版本的 python,如果你想安装个python3怎么办呢?

如果直接删除python2的话,可能会引起其他的问题,因为有些东西是依赖python2的,最好的解决办法是python3和python2共存,新安装一个python3的环境。

查看python状态

[root@bogon ~]# cd / #先回到根目录[root@bogon/]# whereispython #查看python所在目录(/usr/bin下)

python:/usr/bin/python2.7 /usr/bin/python /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz

[root@bogon/]# cd /usr/bin #切到python目录

[root@bogon bin]# ll python*  #查看python开头的相关文件详情lrwxrwxrwx.1 root root 7 2月 4 16:28 python ->python2

lrwxrwxrwx.1 root root 9 2月 4 16:28 python2 -> python2.7

-rwxr-xr-x. 1 root root 7216 4月 11 2018 python2.7[root@bogon bin]#

从查看的结果可以看到python指向的是python2 ,python2指向的是python2.7。那也就是在控制台输入python、python2、python2.7都是运行python2.7

如果我们安装一个python3.6的环境,让python指向3.6, python2指向python2.7, 那就可以完美的共存了

准备安装python3

安装python3.6之前,先备份python包,因为一会要替换这个文件

[root@bogon bin]# mvpython python.bak #本步骤,执行的命令

以下为查看结果

[root@bogon bin]# ll python* #只是查看执行的结果lrwxrwxrwx.1 root root 9 2月 4 16:28 python2 -> python2.7

-rwxr-xr-x. 1 root root 7216 4月 11 2018 python2.7lrwxrwxrwx.1 root root 7 2月 4 16:28 python.bak -> python2

yum配置

yum是依赖于python2的,所以需要更改yum里面的python指向,vim打开 /usr/bin/yum

[root@bogon Python-3.6.8]# vim /usr/bin/yum

#! /usr/bin/python修改为#! /usr/bin/python2

打开后输入键盘上i键,进入编辑状态,把第一行#! /usr/bin/python修改为#! /usr/bin/python2

1070438-20181229135721117-587000005.png

编辑完之后,按ESC返回,输入:wq保存退出

接着vim打开/usr/libexec/urlgrabber-ext-down

[root@bogon Python-3.6.8]# vim /usr/libexec/urlgrabber-ext-down

#! /usr/bin/python 修改为#! /usr/bin/python2

下载安装包

从python安装包的历史版本中

1070438-20181229113749694-1493752466.png

1070438-20181229113957313-418108825.png

在Centos 7系统里面新建一个目录,用于存放下载的python3安装包,比如:/usr/local/python3

[root@bogon bin]# mkdir /usr/local/python3

cd到 /usr/local/python3目录,用wget下载3.6.8安装包

[root@bogon python3]# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

以下为下载过程:100%为下载完成--2019-02-05 22:16:30-- https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

正在解析主机 www.python.org (www.python.org)... 151.101.24.223, 2a04:4e42:2e::223正在连接 www.python.org (www.python.org)|151.101.24.223|:443... 已连接。

已发出 HTTP 请求,正在等待回应...200OK

长度:23010188 (22M) [application/octet-stream]

正在保存至: “Python-3.6.8.tgz”100%[=========================================================================>] 23,010,188 2.08MB/s 用时 76s2019-02-05 22:17:47 (297 KB/s) - 已保存 “Python-3.6.8.tgz” [23010188/23010188])

解压tgz包

等待下载完成之后会在当前目录下出现一个tgz包,tar命令解压这个包到当前目录就可以

[root@bogon python3]# tar -xvf Python-3.6.8.tgz

解压完成后,会多一个

[root@bogon python3]# ll

总用量22476drwxr-xr-x. 17 501 501 4096 12月 24 11:01 Python-3.6.8

-rw-r--r--. 1 root root 23010188 12月 24 11:01 Python-3.6.8.tgz

指定安装目录

解压完之后需要编译Python-3.6.8包下的文件,先cd过去执行完这句命令之后,把python的安装目录指定一下,这样的话,里面的一些bin目录、lib目录就都会存放在这个目录下面。

如果不指定这个安装目录的话,最后python的安装文件将分散到linux的默认目录,不在一块。我们指定安装目录,以后卸载的话直接删除目录就可以干净卸载了。

[root@bogon python3]# cd Python-3.6.8[root@bogon Python-3.6.8]# ./configure --prefix=/usr/local/python3Dir

在此处被坑不知道使用这个命令会如何./configure --prefix=/usr/local/python3Dir --with-ssl

又是不行,报错

#不报错的话没有这些

[root@bogon Python-3.6.8]# ./configure --prefix=/usr/local/python3Dir

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu

checkingfor python3.6... no

checkingforpython3... no

checkingforpython... no

checkingfor --enable-universalsdk... no

checkingfor --with-universal-archs... no

checking MACHDEP... linux

checkingfor --without-gcc... no

checkingfor --with-icc... no

checkingfor gcc... no

checkingfor cc... no

checkingforcl.exe... no

configure: error:in `/usr/local/python3/Python-3.6.8':

configure: error: no acceptable C compiler found in$PATH

See `config.log'for more details

[root@bogon Python-3.6.8]# cd ..

[root@bogon python3]# ./configure --prefix=/usr/local/python3Dir-bash: ./configure: 没有那个文件或目录

sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

安装make

接着之前的搞,在当前目录/usr/local/python3/Python-3.6.8执行make,执行完之后,接着输入make install

[root@bogon Python-3.6.8]# make# 执行时间还挺长的

[root@bogon Python-3.6.8]# make install #执行这个命令之后出现python3Dir 目录

Traceback (most recent call last):

File"/usr/local/python3/Python-3.6.8/Lib/runpy.py", line 193, in_run_module_as_main"__main__", mod_spec)

File"/usr/local/python3/Python-3.6.8/Lib/runpy.py", line 85, in_run_code

exec(code, run_globals)

File"/usr/local/python3/Python-3.6.8/Lib/ensurepip/__main__.py", line 5, in sys.exit(ensurepip._main())

File"/usr/local/python3/Python-3.6.8/Lib/ensurepip/__init__.py", line 204, in_main

default_pip=args.default_pip,

File"/usr/local/python3/Python-3.6.8/Lib/ensurepip/__init__.py", line 117, in_bootstrap

return _run_pip(args+ [p[0] for p in_PROJECTS], additional_paths)

File"/usr/local/python3/Python-3.6.8/Lib/ensurepip/__init__.py", line 27, in_run_pip

import pip._internal

zipimport.ZipImportError: can't decompress data; zlib not available #-------不晓得这个错误有没有影响,zipimport。ZipImportError:无法解压数据;zlib不可用

make: *** [install] 错误 1[root@bogon Python-3.6.8]# #看样子是pip的问题,

yum -y install zlib*

正常 make install 截图

1342163-20190205235639651-33830259.png

做个插入,这里有个问题?!!!

出现原因:readline模块没有安装

# 安装readline模块yum -y install readline-devel

# 进入Python安装目录

cd/usr/local/python3/Python-3.6.8# 重新执行Python的安装make && make install

安装完成

执行完毕之后,我们就可以切换到 /usr/local/python3Dir 目录下去查看,python3.6在bin目录

[root@bogon Python-3.6.8]# cd /usr/local/python3Dir

[root@bogon python3Dir]#lsbin include lib share

[root@bogon python3Dir]# cd bin

[root@bogon bin]#ls2to3 idle3 pydoc3 python3 python3.6-config python3.6m-config pyvenv

2to3-3.6 idle3.6 pydoc3.6 python3.6 python3.6m python3-config pyvenv-3.6

添加软链接

由于系统默认的python是指向python2,前面已经删除备份过了,这里执行把新安装的python3.6指向给/usr/bin/pythonn就可以了

[root@bogon bin]# ln -s /usr/local/python3Dir/bin/python3 /usr/bin/python

[root@bogon bin]# python-V

Python3.6.8[root@bogon bin]# python

Python3.6.8 (default, Feb 5 2019, 22:52:11)

[GCC4.8.5 20150623 (Red Hat 4.8.5-36)] on linux

Type"help", "copyright", "credits" or "license" for moreinformation.>>>exit()

#输入python-V可以看到版本号,这样系统默认的就是python3.6.8版本了,如果想用python2.7版本,直接输入python2就可以了

[root@bogon bin]# python2

Python2.7.5 (default, Apr 11 2018, 07:36:10)

[GCC4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2

Type"help", "copyright", "credits" or "license" for moreinformation.>>>[1]+已停止 python2

pip环境

python3安装完成之后,如果想用pip安装一些第三方包,系统会默认安装到python2的环境里面。为了能够使用pip安装到python3的环境,可以下载pip安装包,添加软链接。

先cd到/usr/bin

mv备份pip

添加python3Dir安装目录里面的pip3软链接

查看pip -V 和pip2 -V

查看所有的pip

[root@bogon bin]# pip

bash: pip: 未找到命令...

[root@bogon bin]#whereispip

pip:[root@bogon bin]#

[root@bogon bin]#

[root@bogon bin]# cd/usr/bin

[root@bogon bin]#pwd

/usr/bin

[root@bogon bin]# ll pip*

ls: 无法访问pip*: 没有那个文件或目录

[root@bogon bin]#ln -s /usr/local/python3Dir/bin/pip3 /usr/bin/pip #这里直接执行这个即可

[root@bogon bin]# ll pip*lrwxrwxrwx.1 root root 27 2月 5 23:09 pip -> /usr/local/python3/bin/pip3

我这里并没有pip的命令,故直接执行了这一个命令即可

ln -s /usr/local/python3Dir/bin/pip3 /usr/bin/pip

(本次尝试失败,应该就是上面安装的时候报错的原因,暂时先这样了)

python其他快捷键(pytest、django-admin这些)

问题描述:

在安装完上述,python 和 pip 环境后,在linux命令行下直接执行 pytest 命令时,报错:没有发现此命令

解决办法一:

在pytest前,加 python -m ; python -m 的意思就是说,使用python 下的 模块的命令

比如:运行pytest使用:python -m pytest (+其他参数) #使用python下pytest相关命令,下同

运行django相关:python -m django-admin (+其他参数)

上述 pip的命令也可以这样实现,pip 也是python下的一个模块

解决办法二:

就是同上面的pip命令,来创建软连接,来实现直接在命令行 运行相关命令

ln -s /usr/local/python3Dir/bin/pip3 /usr/bin/pip

问题解决

1.解决了上面的zlib问题, pip已经安装成功,可是一波刚平,一波又起风云,如下图

1342163-20190206000031510-224611381.png

1342163-20190206000118252-1040482084.png

暂时以这两篇文章,为准吧, ./configure --prefix=/usr/local/python3Dir --with-ssl

1. 查看openssl安装包,发现缺少openssl-devel包

[root@localhost~]# rpm -aq|grepopenssl

openssl-0.9.8e-20.el5

openssl-0.9.8e-20.el5

[root@localhost~]#2.yum安装openssl-devel

[root@localhost~]# yum install openssl-devel -y

查看安装结果

[root@localhost~]# rpm -aq|grepopenssl

openssl-0.9.8e-26.el5_9.1openssl-0.9.8e-26.el5_9.1openssl-devel-0.9.8e-26.el5_9.1openssl-devel-0.9.8e-26.el5_9.1

3.重新对python3.6进行编译安装,用一下过程来实现编译安装:

cd Python-3.6.4./configure --with-sslmake

sudo make install

1342163-20190206002122132-289578201.png

不在报错,那就ok了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值