RedHat7自带python2.7,在该linux服务器上运行并编译python3.6.5的程序。用root用户登录。
一、安装Python3.6.5
1 安装依赖环境
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2 下载tgz
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
3 安装python3
创建目录
mkdir /usr/local/python3
解压
tar -zxvf Python-3.6.5.tgz
进入解压目录
cd Python-3.6.5
编译安装,这里enable-shared非常关键,如果没有它,在编译打包python脚本时,会找不到关键lib文件
./configure --prefix=/usr/local/python3 --enable-shared
make
make install
建立软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
将/usr/local/python3/bin加入PATH
vim ~/.bash_profile
# .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
按ESC,输入:wq回车退出。
修改完记得执行行下面的命令,让上一步的修改生效:
source ~/.bash_profile
检查Python3及pip3是否正常可用:
python3 -V
Python 3.6.5
pip3 -V
pip 18.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
默认python版本查看
python -V
Python 2.7.5
pip -V
pip 18.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
二、安装PyInstaller
pip3 install PyInstaller
三、使用pyinstaller编译指定版本的python运行程序
默认2.7版本的
python -m PyInstaller --upx-dir="/usr/lib/python2.7/site-packages/" <your_script>.py
3.6.5版本的
临时改变环境变量,运行打包命令
export LD_LIBRARY_PATH=/usr/local/python3/lib
python3 -m PyInstaller <your_script>.py
#or
python3 -m PyInstaller -F <your_script>.py
其中-F是可选项,有-F可以将脚本以及所有依赖打成一个可运行程序,如果不用-F,就会打出很多零碎的文件