Python腳本打包 .so & .exe

一、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

so打包:https://www.cnblogs.com/answerThe/p/11600590.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章