python的setup.py文件及其常用命令

本文详细介绍了Python中的setup.py文件及其各种命令的用法,包括标准命令如sdist、bdist_egg、install等,以及额外命令如develop、setopt等。此外还提供了如何通过setup.py进行包的安装、卸载及自定义命令的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写setup.py文件,获取帮助:python setup.py --help-commands

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文

件中列举的所有引用。


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
'''

6.打包时将其他类型的文件一起打包

distutils默认是不会打包py文件以外的文件的,解决办法为在setup.py中加入:

setup(
  name = 'srcDetect',
  version = '0.1.0',
  packages=find_packages(), 
  #include_package_data = True,
  package_data = {'':['*.txt']},  #这里将打包所有的txt文件
  license = 'GPL',
  keywords = 'test api mydemo',
  platforms = "Independant",
  url = '',
  
  data_files=[('d:\\a',['srcDetect/a.txt'])],   #安装包的时候执行,会将a.txt拷贝到d盘下的a文件夹中
    )


### 问题分析与解决方案 当使用 `python setup.py install` 命令时没有反应,可能是由于多种原因引起的。以下是可能导致此问题的原因及相应的解决方法。 #### 环境变量配置错误 如果在命令行中输入 `python` 后跳转到微软商店页面,则说明环境变量未正确配置。这种情况下,需要重新安装 Python,并确保在安装过程中勾选了 `Add Python to PATH` 选项[^2]。完成安装后,需验证环境变量是否正确设置。可以通过以下命令检查 Python 是否可用: ```bash python --version ``` #### 文件权限问题 如果当前用户对文件或目录没有足够的权限,可能会导致 `python setup.py install` 没有反应。为避免此类问题,建议以管理员身份运行命令提示符,或者确保当前用户对相关文件和目录具有读写权限[^3]。 #### setuptools 版本过旧 `setup.py` 文件通常依赖于 `setuptools` 模块。如果系统中安装的 `setuptools` 版本过旧,可能会导致安装过程无法正常进行。可以尝试更新 `setuptools` 到最新版本: ```bash pip install --upgrade setuptools ``` #### 脚本执行问题 有时,`setup.py` 文件本身可能存在语法错误或其他问题,导致其无法正常执行。可以尝试通过以下命令来调试脚本: ```bash python -v setup.py install ``` 上述命令会输出详细的执行日志,有助于定位问题所在[^4]。 #### 替代安装方法 如果 `python setup.py install` 方法仍然无法解决问题,可以考虑使用 `pip` 安装已下载的包文件。例如,对于 `.whl` 文件,可以使用以下命令进行安装: ```bash pip install package.whl ``` ### 示例代码 以下是一个简单的示例,展示如何手动安装一个 Python 包: ```python # 解压下载的包文件 tar -xvzf package.tar.gz # 进入解压后的目录 cd package # 使用 pip 或 setup.py 安装 pip install . # 或者 python setup.py install ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值