一、Python程序打包成可執行程序
1.在python腳本的運行環境下安裝打包工具 pyinstaller
pip3 install pyinstaller # 基於Linux下的安裝
2.找到可執行py腳本路徑,開始打包
pyinstaller -i logo.ico -F -c sc.py # 有圖標 pyinstaller -F -c sc.py # 無圖標
Pyinstaller工具的基本參數如下:
- -i: 表示要加載的圖標(沒有選擇圖標可以不用寫)
- x.ico:表示自己選擇的圖標名(沒有選擇圖標可以不用寫)
- -F:表示打包成.exe可執行文件
- -c:表示打包程序有窗口
- sc.py:表示你要打包的py文件
執行上述指令之後就會在本地目錄下的dist目錄中找到對應的可執行程序sc.
二、Python程序打包.so動態庫
1. 安裝cpython庫等環境
pip3 install cython
2.編寫setup.py文件
1 from distutils.core import setup 2 from distutils.extension import Extension 3 from Cython.Build import cythonize 4 5 extensions = [Extension("ln_facedetector", 6 ["ln_facedetector.py"], 7 include_dirs=["/usr/local/lib"], 8 libraries=["/usr/local/lib/python3.6/site-packages/cv2/cv2.cpython-36m-x86_64-linux-gnu.so", 9 "/usr/local/lib/python3.6/site-packages/dlib.cpython-36m-x86_64-linux-gnu.so"], 10 library_dirs=["/usr/local/lib/python3.6/site-packages/cv2","/usr/local/lib/python3.6/site-packages"])] 11 12 setup(ext_modules=cythonize(extensions))
上述ln_facedetector爲待轉換的.so包名稱,對應的python腳本文件,整個工程中包括多少個py文件,就寫多少個Extension,並把需要調用的其他庫路徑在include_dirs、libraries、library_dirs中進行設置
3. 編譯so文件,執行以下命令
python setup.py build_ext
4. 調用so文件
import sys sys.path.append('/vloum/faceSO/ln_facedetector') #加載so文件(入參爲so文件路徑) from ln_facedetector import faceutil #import so文件中的相關類 arr = faceutil.detection("/vloum/faceSO/a.jpg") print(arr)
Reference
exe打包:https://blog.csdn.net/zhezhebie/article/details/81908033