1. 程式人生 > >使用 Setup 將Python 程式碼 打包

使用 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引數:

  1. name 打包名稱 
  2. version 版本
  3. ....
  4. playforms 所支援的平臺 ,例中只支援2.7
  5. package_dir 原始碼所在目錄 
  6. packages 原始碼目錄下那些目錄要被打包
  7. py_modules 需要打包的模組
  8. requires 定義依賴模組 
  9. ... 

具體引數可參見官網

引用:

https://docs.python.org/2/distutils/apiref.html

http://blog.csdn.net/langb2014/article/details/53114341