centos安装python3详细教程

centos安装python3详细教程

一、安装python3环境

centos7自带版本是python2.7

如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/

1、先查看系统python的位置在哪儿

whereis python

python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/

cd /usr/bin/
ll python*

python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。

2、下载python3的包之前,要先安装相关的依赖包,用于下载编译python3:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

运行了以上命令以后,就安装了编译python3所用到的相关依赖

3、默认的centos7是没有安装pip,先添加epel扩展源

yum -y install epel-release

4、安装pip

yum install python-pip

5、用yum装wget

yum -y install wget

6、用wget下载python3的源码包,或者自己先下载好,上传到服务器再安装,如果网络快可以直接安装

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz

7、编译python3源码包,解压

xz -d Python-3.6.8.tar.xz
tar -xf Python-3.6.8.tar

8、进入解压后的目录,依次执行下面命令进行手动编译

cd Python-3.6.8
./configure --prefix=/usr/local/python3 --enable-optimizations --enable-shared  --with-ssl 
make && make install

9、安装依赖zlib、zlib-deve

yum install zlib zlib
yum install zlib zlib-devel

10、最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录

11、添加软链接,将原来的链接备份

mv /usr/bin/python /usr/bin/python.bak

12、添加python3的软链接

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python

13、测试是否安装成功了

python -V

如果遇到如下错误
[root@localhost local]# python -v
python: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

我们只需要将该文件复制到usr/lib64
cp /installPackage/Python-3.6.8/libpython3.6m.so.1.0 /usr/lib64/

14、更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用

vi /usr/bin/yum

15、把第一行的#! /usr/bin/python 修改为如下

#! /usr/bin/python2

16、还有一个地方也需要修改

vi /usr/libexec/urlgrabber-ext-down

17、把第一行的**#! /usr/bin/python** 修改如下

#! /usr/bin/python2

18、启动python2

python2

19、启动python3

python

二、安装pyinstaller

python -m pip install pyinstaller

如果遇到command not found 的情况,解决方式:复制pyinstaller到**/usr/bin/**下

cd /usr/local/python3/bin/
cp pyinstaller /usr/bin/.

如果打包时报错:

OSError: Python library not found: libpython3.6m.so.1.0, libpython3.6mu.so.1.0, libpython3.6.so.1.0
This would mean your Python installation doesn't come with proper library files.
This usually happens by missing development package, or unsuitable build parameters of Python installation.
 
* On Debian/Ubuntu, you would need to install Python development packages
* apt-get install python3-dev
* apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)

解决方式:是因为编译python 的时候没有加**–enable-shared** ,重新编译即可

有时候打包的时候发现缺少libpython3.6m.so.1.0,可以先在服务器中搜索libpython3.6m.so.1.0在哪里,然后拷贝到**/usr/lib64**

cd /usr/local/python36/lib/
cp libpython3.6m.so.1.0 /usr/lib64/

三、安装第三方库

安装zeroc-ice时遇到错误:

............
running build_ext
    building 'IcePy' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/src
    creating build/temp.linux-x86_64-3.6/src/ice
    creating build/temp.linux-x86_64-3.6/src/ice/cpp
    creating build/temp.linux-x86_64-3.6/src/ice/cpp/src
    creating build/temp.linux-x86_64-3.6/src/ice/cpp/src/Ice
    creating build/temp.linux-x86_64-3.6/src/ice/cpp/src/Slice
    creating build/temp.linux-x86_64-3.6/src/ice/cpp/src/IceSSL
    creating build/temp.linux-x86_64-3.6/src/ice/cpp/src/IceLocatorDiscovery
    creating build/temp.linux-x86_64-3.6/src/ice/cpp/src/IceUtil
    creating build/temp.linux-x86_64-3.6/src/ice/cpp/src/IceDiscovery
    creating build/temp.linux-x86_64-3.6/src/ice/mcpp
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -DICE_PYPI -DICE_STATIC_LIBS -Isrc -Isrc/ice/cpp/include -Isrc/ice/cpp/include/generated -Isrc/ice/cpp/src -I/usr/local/python3/include/python3.6m -c src/ConnectionInfo.cpp -o build/temp.linux-x86_64-3.6/src/ConnectionInfo.o -w
    gcc: error trying to exec 'cc1plus': execvp: 没有那个文件或目录
    error: command 'gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-q4oetdsy/zeroc-ice_5d02e88c62d246a09eaebdb3cc1ad114/setup.py'"'"'; __file__='"'"'/tmp/pip-install-q4oetdsy/zeroc-ice_5d02e88c62d246a09eaebdb3cc1ad114/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-ogw_3t2t/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/python3/include/python3.6m/zeroc-ice Check the logs for full command output

这是因为没有安装gcc

yum install -y gcc-c++ 

然后就可以安装了,记得指定python 版本哦!

python -m pip install zeroc-ice

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年11月6日
下一篇 2023年11月6日

相关推荐