python的setup.py文件及其常用命令
- 2019 年 11 月 28 日
- 筆記
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/weixin_36670529/article/details/103125603
編寫setup.py文件,獲取幫助:python setup.py –help-commands
[python] Standard commands: build build everything needed to install build_py "build" pure Python modules (copy to build directory) build_ext build C/C++ extensions (compile/link to build directory) build_clib build C/C++ libraries used by Python extensions build_scripts "build" scripts (copy and fixup #! line) clean clean up temporary files from 'build' command install install everything from build directory install_lib install all Python modules (extensions and pure Python) install_headers install C/C++ header files install_scripts install scripts (Python or otherwise) install_data install data files sdist create a source distribution (tarball, zip file, etc.) register register the distribution with the Python package index bdist create a built (binary) distribution bdist_dumb create a "dumb" built distribution bdist_rpm create an RPM distribution bdist_wininst create an executable installer for MS Windows upload upload binary package to PyPI check perform some checks on the package Extra commands: rotate delete older distributions, keeping N newest files develop install package in 'development mode' setopt set an option in setup.cfg or another config file saveopts save supplied options to setup.cfg or other config file egg_info create a distribution's .egg-info directory install_egg_info Install an .egg-info directory for the package alias define a shortcut to invoke one or more commands easy_install Find/get/install Python packages bdist_egg create an "egg" distribution test run unit tests after in-place build
standard commands(標準命令)是distutils內建命令,而Extra commands(附加命令)是像
setuptools這樣的第三方包創建的。
命令詳解: 1.sdist:用來創建一個源碼包,在windows下為zip格式,linux下為tag.gz格式 。 setup.py示例: from setuptools import setup setup(name='xxx',version='0.1.1') 打包命令:python setup.py sdist distutils將瀏覽包的路徑,查找包含在檔案中的文件,包括: 1)所有py_modules、packages和scripts選項隱含的python源文件 2)所有在ext_modules選項中列出的C源文件 3)符合test/test*.py模式的文件 4)README、README.txt、setup.py和setup.cfg文件
如果需要包含更多文件,那麼可以使用MANIFEST.in文件模版,示例如下: include xx.txt include yy/xx.txt …. 2.bdist_egg:用來創建一個二進制分發版本,經常用來替代基於bdist生成的模式
3.install:安裝包到python中。另外,他還可能會安裝在setup.py中的install_requires定義的
相關模塊,例如:
install_requires=['…','…']
刪除一個包:1)刪除這個包所創建的文件,2)刪除在site-packages文件夾easy-install.pth文
件中列舉的所有引用。 www.2cto.com
4.develop:編譯並且在適當的位置安裝包,然後添加一個簡單的鏈接到python site-packages文
件夾中,可以使用顯式的-u選項刪除包,例如: python setup.py develop python setup.py develop -u 使用該方式比其他方式安裝包更好一些
5.創建一個新命令:這是由setuptools引入的,是一種將包定義為插件的簡單方法,示例: …entry_points=''' [distutils.commands] my_command=my.command.module.Class


