因有一個項目在windows下開發,在打包時發現Pyinstaller只能打包成exe,不能打成linux下的可執行文件,所以需要在服務器端搭建環境編譯。特此記錄!
注意,注意,注意!如果本機安裝了python2,千萬不要管他,使用python3運行python腳本就好,因爲有程序依賴目前的python2環境,比如yum!!!!!不要動現有的python2環境!這個是血的代價!這個是血的代價!這個是血的代價!
一、安裝python3.6
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
因沒有外網網絡(這個是項目的原因,不允許接外網),所以只能把操作系統光盤加載成了yum鏡像源,也可以比較方便的安裝。以上的包都會有。可放心安裝。
2.下載Python3
https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
可根據個人需求安裝相應的版本,有一個小技巧,可以用上面的鏈接,把版本號改了以後,就可以下載想要的版本號了。
3.安裝Python3
個人習慣安裝在/usr/local/python3(具體安裝位置看個人喜好)3.安裝python3
創建目錄:
mkdir -p /usr/local/python3
解壓下載好的Python-3.x.x.tgz包(具體包名因你下載的Python具體版本不同而不同,如:我下載的是Python3.6.0.那我這里就是Python-3.6.0.tgz)
tar -zxvf Python-3.6.0.tgz
4.進入解壓後的目錄,編譯安裝。
# cd Python-3.6.0
# ./configure --prefix=/usr/local/python3 --enable-shared
對了,這裏是需要gcc支持的,如果沒有安裝gcc的話(輸入gcc -v可以查看)
裝好gcc以後,這裏需要對python源碼進行編譯安裝。
先進行配置,在安裝包目錄下,配置將要安裝的目錄,後面的enable參數一定要加上,否則在裝好pyinstaller以後打包會找不到動態鏈接庫。切記!切記!切記!
#make
#make install
安裝python3就結束了。
5.建立python3的軟鏈
#ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
#ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip33
6.並將/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
LD_LIBRARY_PATH=/usr/local/python3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
按ESC,輸入:wq回車退出。
修改完記得執行行下面的命令,讓上一步的修改生效:
# source ~/.bash_profile
檢查Python3及pip3是否正常可用:
# python3 -V
Python 3.6.0
# pip3 -V
pip 9.0.1 from /usr/local/python3/lib/python3.6/site-packages (python 3.6)
6.安裝第三方包
如果下載的是tar.gz,則需在解壓後,在解壓後的目錄下執行:
python3 setup.py install
如果下載的是 whl 文件,則執行
pip3 install xxxx.whl
在安裝第三方類包時看提示,有可能會提示需要安裝其它的依賴包,可按提示進行依賴包的安裝。
7.安裝pyinstaller,一個打包python程序的模塊。
pip3 install pyinstaller
裝好後可以在list裏看到了。當然也可以用其他方式編譯安裝,但是這樣應該是比較簡單的了。
打包命令:
#/usr/local/python3/bin/pyinstaller -F xx.py
-F, –onefile 打包一個單個文件,如果你的代碼都寫在一個.py文件的話,可以用這個,如果是多個.py文件就別用
以上是linux64位服務器python環境安裝。