CenterOS 7安装Python3.6.8
Python3.7可能是只能安装tensorflow1.13以上
步骤
- wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
- mkdir -p /usr/local/python3 个人习惯安装在/usr/local/python3(具体安装位置看个人喜好)
- tar -zxvf Python-3.6.8.tgz
- cd Python-3.6.8
- yum -y groupinstall development 确保我们的系统具有所有必要的开发依赖关系
- yum -y install zlib-devel
- yum install bzip2-devel 如果没有这句,安装mxnet会报错:ModuleNotFoundError: No module named '_bz2'
- ./configure --prefix=/usr/local/python3 设置配置目录
- make altinstall 而不是 make && make install 此时已经安装成功(有问题),但是得再/usr/local/python3/bin中开启
- ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 建立python3的软链
- ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3 建立pip3连接
- pip3 install pip --upgrade 更新
- vim ~/.bash_profile 编辑
- 将PATH='$PATH:$HOME/bin'后添加":/usr/local/python3/bin"内容,然后esc,再“:wq”
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
export PATH
- source ~/.bash_profile 让上一步的修改生效
- python3或pip3就可以了
查看当前pip3版本信息
pip3 -V
- setuptools安装参考 不装应该也可以
问题
1.make install不成功,ModuleNotFoundError: No module named '_ctypes'
关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
CentOS的软件安装工具不是apt-get 是yum
yum -y install 你要安装的文件
2.pip3 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
# To allow for building python ssl libs
yum install openssl-devel
# Download the source of *any* python version
cd /usr/src
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar xf Python-3.6.2.tar.xz
cd Python-3.6.2
# Configure the build w/ your installed libraries
./configure
# Install into /usr/local/bin/python3.6, don't overwrite global python bin
make altinstall
3.错误的将/usr/local/lib下的libpython3.6m.a 与python3.6删除,后在运行python3或pip3 导致如下错误:
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ImportError: No module named 'encodings'
Aborted
原因:系统默认运行python3.6,让你出删除后就编译不了3.6了,所以删除原来安装的python3.6安装目录:/usr/local/bin,和/usr/local/python3 重新安装了python3.7此时才创建软引用系统才有效,否则新安装的3.7怎么配置都不会被系统引用到。
卸载python3.6
# 删除上述文件
rm -rf /usr/local/lib/python3.6
rm -rf /usr/local/bin/2to3-3.6 to
rm -rf /usr/local/bin/pyvenv-3.6
rm -rf /usr/local/bin/pydoc3.6
rm -rf /usr/local/bin/idle3.6