Python打包工具setuptools的使用


將我們寫的Python程序發布成包后,可以使其能夠安裝使用。

在項目上測試的時候,某些情況下,可以將Python打包,然后上傳到測試服務器,安裝測試。

setuptools是常用的打包工具。

一個簡單的setup.py文件如下:

from setuptools import setup, find_packages
setup(
    name = "my_demo",
    version = "0.1",
    packages = find_packages()
)

其中,name是包的名字,version是版本。

給packages指定find_packages(),意為包括在本目錄下的所有Python包。

什么是Python包呢?在Python 3.2及更早版本中,只有包含__init__.py文件才能識別為Python包。

那要是不想包含某些包呢?給find_packages指定exclude參數即可。

那如果我們想將數據文件也添加進來呢?有以下方法(以下:package_data:數據文件,即一些txt或者dat文件 ):

方法一

在使用版本控制的情況下(先包含全部數據文件,再指定去除):

packages = find_packages('src'),  # 包含所有src目錄下的package
    package_dir = {'':'src'},   

    include_package_data = True,    # 包含所有版本控制的內容

    # 排除所有 README.txt
    exclude_package_data = { '': ['README.txt'] }

方法二(直接指定包含哪些數據文件):

packages = find_packages('src'),  # 包含所有src中的包
    package_dir = {'':'src'},   # 告訴distutils包都在src下

    package_data = {
        # 如果包中含有.txt文件,則包含它
        '': ['*.txt'],
        # 包含demo包data文件夾中的 *.dat文件
        'demo': ['data/*.dat']
}

其他的一些常用參數:

zip_safe,指定boolean選項,控制項目能否直接通過壓縮文件安全安裝。

install_requires:安裝依賴

entry_points: 創建控制台腳本 詳情

等等

可以使用命令:

python setup.py bdist_egg

來創建egg文件,egg文件可以跨平台,便於使用pip安裝。

也可以使用命令:

python setup.py sdist

來創建源發布版本,此后可通過pip install來安裝生成的tar.gz包

其他一些setup.py文件的參數選項
 python setup.py build     #編譯
 python setup.py install 
   #安裝
 python setup.py sdist 
     #制作分發包
 python setup.py bdist_wininst    #制作windows下的分發包
 python setup.py bdist_rpm

 

參考:

https://setuptools.readthedocs.io/en/latest/setuptools.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM