python setuptools
阿新 • • 發佈:2017-11-30
源碼 nump 發現 地址 目錄 test collect 維護 all
在安裝python依賴庫時,我們使用pip install 或者python setup.py install. pip 會自己搜索適合的版本,python setup.py 需要下載源碼本地安裝。但是python setup.py 適合一鍵打包安裝。
setup import from setuptools, setuptools 包含依賴檢查、動態擴展等功能。
setup.py 包含的參數:
--name 包名稱 --version (-V) 包版本 --author 程序的作者 --author_email 程序的作者的郵箱地址 --maintainer 維護者 --maintainer_email 維護者的郵箱地址 --url 程序的官網地址 --license 程序的授權信息 --description 程序的簡單描述 --long_description 程序的詳細描述 --platforms 程序適用的軟件平臺列表 --classifiers 程序的所屬分類列表 --keywords 程序的關鍵字列表 --packages 需要處理的包目錄(包含__init__.py的文件夾) --py_modules 需要打包的python文件列表 --download_url 程序的下載地址 --cmdclass --data_files 打包時需要打包的數據文件,如圖片,配置文件等 --scripts 安裝時需要執行的腳步列表 --package_dir 告訴setuptools哪些目錄下的文件被映射到哪個源碼包。一個例子:package_dir = {‘‘: ‘lib‘},表示“root package”中的模塊都在lib 目錄中。 --requires 定義依賴哪些模塊 --provides定義可以為哪些模塊提供依賴 --find_packages() 對於簡單工程來說,手動增加packages參數很容易,剛剛我們用到了這個函數,它默認在和setup.py同一目錄下搜索各個含有 __init__.py的包。 其實我們可以將包統一放在一個src目錄中,另外,這個包內可能還有aaa.txt文件和data數據文件夾。另外,也可以排除一些特定的包 find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]) --install_requires = ["requests"] 需要安裝的依賴包 --entry_points 動態發現服務和插件
例子:
from setuptools import setup, find_packages setup( name="prml", version="0.0.1", description="Collection of PRML algorithms", author="ctgk", python_requires=">=3.6", install_requires=["numpy", "scipy"],#需要安裝的依賴 packages=find_packages(exclude=["test", "test.*"]), # 需要打包的package,使用find_packages 來動態獲取package test_suite="test" )
python setuptools