關鍵詞:
vmware centos7 python3 pyinstaller
概述:
由於公司的一些信息安全政策限制。故需要在虛擬機中創建centos7系統,再安裝python3,實現python項目的工程化打包。
基本參數:
私服:ubuntu18
虛擬機借助軟件vmware
虛擬機中的系統:centOS7
虛擬機中安裝的python3.6
步驟:
1.在ubuntu中安裝vmware
2.在vmware中安裝centOS7系統
3.在centOS7中安裝python3
4.在python3後安裝pyinstaller
5.打包工程
6.測試
備注:網上關於步驟1和步驟2的介紹沒什麼問題,這裡不講了。
centos7自帶python2.7.5.
3.1裝之前,先下載相關的工具和依賴
下載wget工具
yum -y install wget
下載依賴
yum -y install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
另外我還加了一個
yum -y install python3-devel
因為之前有一次裝pyinstaller打包失敗報錯就是沒有裝python-devel和python3-devel。
3.2下載 python源碼包
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
3.3解壓源碼包
tar -zxvf Python-3.6.6.tgz
4.進入源碼包文件夾
cd Python-3.6.6
5.指定安裝目錄
./configure --prefix=/opt/python36 --enable-optimizations --enable-shared --with-ssl
其中,–prefix是指定安裝目錄
–enable-optimizations是為了讓python加速
–enable-shared這個不寫的話,好像後面裝pyinstaller會有問題
–with-ssl這個是後面安裝pip工具的時候要用ssl
多次失敗才知道這句命令後面要跟這麼多東西。
6.make && make install編譯 安裝
7.更改path變量
vim /etc/profile修改系統環境變量配置文件
在最後一行按i轉換為編輯模式,輸入:
PATH=/opt/python36/bin:/usr/local/sbin:/usr/localbin:/usr/sbin:/usr/bin:/root/bin
按esc退出編輯,輸入:進入末行模式
輸入wq保存退出
8.重載配置文件
source /etc/profile
9.這時候我查看python3還是看不到,好像是說/usr/bin裡沒有相關的python3這個東西
所以還要作一部copy的操作
cp /opt/python36/lib/libpython3.6m.so.1.0 /usr/lib64/
然後python3 --version就可以了
打包工程前,可以通過linux的scp命令把相關的工程文件拷貝進來。
然後把工程裡所有用到的依賴包,用pip install全部在虛擬機裡安裝一遍。
全部install後,就可以開始打包
建議把接口啟動文件放在工程的一級目錄。
pyinstaller -D xxx.py
我在打包的時候,明明有安裝pandas但是還是報錯沒有pandas
我上網查了這種是需要在同名的xxx.spec裡的hiddenimports裡面填寫,加上引號
https://blog.csdn.net/qq_42063091/article/details/82423221
然後再打包即可。
我測試的時候發現在虛擬機裡面起的服務,外面請求這個端口好像網絡是不通的
為scp拷貝到其他服務器運行就可以。
linux查看ip:
ifconfig
scp將本地文件夾上傳到一台linux服務器,示例:
scp -r /home/downloads/main [email protected]:/home/downloads/