使用 Setup 將Python 代碼 打包
完成源碼後將代碼打成安裝包:
1. 我的源代碼結構如下:
pack
|---src
| - common ---http
---user
| - lib
| - factory.py
2. 實現setup.py
#!/usr/bin/env python3 # -*- coding: utf-8 -*- from distutils.core import setup setup( name=‘sdk‘, version=‘1.0‘, description=‘sdk for di input , output and param‘, author=‘sam‘, author_email=‘sam@qq.com‘, url=‘‘, license=‘No License‘, platforms=‘python 2.7‘, py_modules=[‘factory‘], package_dir={‘‘: ‘pack‘}, packages=[‘lib‘, ‘common.http‘] )
執行
python setup.py sdist
setup.py 同級目錄生成一個dist文件夾,裏面是 sdk1.0.tar.gz
之後就可以解壓
解壓後安裝:
python setup.py install
註:使用 setup.py沒有卸載功能,如果需要卸載則要手動刪除
也可使用: -- record 記錄安裝文件的目錄
python setup.py install --record file.txt
卸載就可以使用腳本,實現自動安裝和卸載
註 1:
setup.py參數說明
#python setup.py build # 編譯
#python setup.py install #安裝
#python setup.py sdist #生成壓縮包(zip/tar.gz)
#python setup.py bdist_wininst #生成NT平臺安裝包(.exe)
#python setup.py bdist_rpm #生成rpm包
或者直接"bdist 包格式",格式描述如下:
#python setup.py bdist --help-formats
--formats=rpm RPM distribution
--formats=gztar gzip‘ed tar file
--formats=bztar bzip2‘ed tar file
--formats=ztar compressed tar file
--formats=tar tar file
--formats=wininst Windows executable installer
--formats=zip ZIP file
註2: setup參數:
- name 打包名稱
- version 版本
- ....
- playforms 所支持的平臺 ,例中只支持2.7
- package_dir 源碼所在目錄
- packages 源碼目錄下那些目錄要被打包
- py_modules 需要打包的模塊
- requires 定義依賴模塊
- ...
具體參數可參見官網
使用 Setup 將Python 代碼 打包