1、介绍
Linux
下默认系统自带python2.6
的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3
那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装python3
和python2
共存。
2、准备
首先去 python
官网下载 python3
的源码包。
网址:https://www.python.org/
进去之后点击导航栏的 Downloads
,也可以鼠标放到 Downloads
上弹出菜单选择 Source code
,就是源码包的意思,这里选择最新版本3.5.1,当然下面也有很多其他历史版本,点进去之后页面下方可以看到下载链接,包括源码包、Mac OSX 安装包、Windows 的安装包。
依赖包
yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
yum install xz-devel uuid-devel libuuid-devel
openssl
# 直接安装 pip是不能用的,原因是依赖ssl 1.0.2以上版本,要更新OpenSSL 版本。
wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
#更新OpenSSL
tar -zxvf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j
./config --prefix=/usr/local/openssl shared zlib
make && make install
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile
#rm -rf /usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl
3、安装
tar -xvzf Python-3.8.0.tgz #解压文件
cd Python-3.8.0/ #进入目录
./configure --prefix=/usr/local/python3.8/ --with-openssl=/usr/local/openssl --enable-optimizations #添加配置
make #编译源码(看下边重点)
make install #执行安装
ln -s /usr/local/python3.8/bin/python3.8 /usr/local/bin/python3
ln -s /usr/local/python3.8/bin/pip3 /usr/local/bin/pip3
echo "export PATH=/usr/local/mysql/bin:$PATH" >> $HOME/.bash_profile
pip3 install --upgrade pip
#使用清华的pip 源安装pyinstaller
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
问题
_openssl
# 直接安装 pip是不能用的,原因是依赖ssl 1.0.2以上版本,要更新OpenSSL 版本。
wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
#更新OpenSSL
tar -zxvf openssl-1.0.2j.tar.gz
cd openssl-1.0.2j
./config --prefix=$HOME/openssl shared zlib
make && make install
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile
rm -rf /usr/bin/openssl
ln -s /root/openssl/bin/openssl /usr/bin/openssl
_lzma
yum install -y xz-devel
_sqlite3
使用 sqlite3 --help
来判断是否已经安装 sqlite3,使用 which sqlite3
查看安装目录。
wget http://www.sqlite.org/sqlite-3.5.6.tar.gz
tar -xzvf sqlite-3.5.6.tar.gz
cd sqlite-3.5.6
./configure --disable-tcl --prefix="/usr/local/sqlite3.5"
make
make install
重新编译Python
增加
./configure LDFLAGS="-L/usr/local/sqlite3.5/lib" CPPFLAGS="-I/usr/local/sqlite3.5/include"
_uuid
yum install uuid-devel libuuid-devel
其他问题
参考:https://my.oschina.net/mengyoufengyu/blog/2249877
yum -y install zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel
yum -y install tk-devel gdbm-devel db4-devel libpcap-devel xz-devel wget
yum -y install gcc kernel-devel kenel-headers make bzip2 libffi libffi-devel
yum -y install expat-devel e2fsprogs-devel uuid-devel libuuid-devel tcl
yum -y install gdbm-devel tcl-devel tk-devel python-tools
安装setuptools
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python setup.py build
python setup.py install
#报错: RuntimeError: Compression requires the (missing) zlib module
#解决:yum install zlib-devel
安装pip
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python setup.py build
python setup.py install
#报错:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
# 解决:
# yum install openssl
# yum install openssl-devel
# 升级pip(可选):
pip install --upgrade pip