目录
CentOS默认安装了Python2.7,由于有些命令使用了Python2.7,因此不能卸载,需同时安装Python3.6,主要用于后续安装Tensorflow.
1 下载Python3.6源码
可以从Python官网https://www.python.org/downloads/source/下载,也可以从镜像网站https://www.python.org/ftp/python/下载。
选择下载Python-3.6.8.tar.xz 或Python-3.6.8.tgz
2 编译Python3.6源码
下载完成之后,首先进行解压:
tar -xvf Python-3.6.8.tar.xz
建立一个空文件夹,用于存放python3程序:
mkdir /usr/local/python3
执行配置文件,编译,编译安装:
cd Python-3.6.8
./configure --prefix=/usr/local/python3
make
sudo make install
3 设置
建立软连接(Python与pip都建立软连接,分别为python3、pip3与系统自带的Python2区分):
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
测试python3是否可以用:
[pyengine@localhost apps]$ python3 --version
Python 3.6.8
[pyengine@localhost apps]$ pip3 list
Package Version
---------------------- ---------
bleach 1.5.0
dataclasses 0.8
enum34 1.1.10
html5lib 0.9999999
importlib-metadata 4.8.3
Markdown 3.3.6
numpy 1.19.5
pandas 0.22.0
pip 18.1
protobuf 3.19.4
python-dateutil 2.8.2
pytz 2021.3
setuptools 40.6.2
six 1.16.0
tensorflow 1.4.0
tensorflow-tensorboard 0.4.0
typing-extensions 4.1.1
Werkzeug 2.0.3
wheel 0.37.1
zipp 3.6.0
4 解决ImportError: dynamic module does not define module export function (PyInit__sqlite3)
首先安装splite3
wget https://www.sqlite.org/2017/sqlite-autoconf-3170000.tar.gz --no-check-certificate
tar xf sqlite-autoconf-3170000.tar.gz
cd sqlite-autoconf-3170000/
./configure --prefix=/usr/local/sqlite3 --disable-static --enable-fts5 --enable-json1 CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_RTREE=1"
make
sudo make install
其次,重新编译python3,
./configure --prefix=/usr/local/python3 LDFLAGS="-L/usr/local/sqlite3/lib" CPPFLAGS="-I /usr/local/sqlite3/include"
make
sudo make install
其它设置与前文一致。
5 重要说明
事实上,除了sqlite3外,还有curses, tkinter, readline, bz2等不依赖于python基础模块,需要事先安装,这些库不是必须的,只有特定情况下才会使用,建议事先安装,然后再编译python。或者发现缺乏某个模块后,可在安装该模块后再重新编译,更新python3和pip3软连接,虚拟环境仍可正常使用。
为了简单,可以安装Anaconda,已经配置好。
上一篇:【已解决】将CentOS7系统安装至U盘(五):配置或升级JDK
下一篇:【已解决】将CentOS7系统安装至U盘(七):Python3.6虚拟环境安装Tensorflow 1.15和Tensorflow 2.6