如何仅为单个Python包生成.whl分发安装文件?
解决仅打包指定Python包生成.whl文件的问题
问题根源
你当前的setup.py存在关键错误:packages参数里写的是["package 1"](带空格),但实际的包文件夹名为package1(无空格),这导致setuptools无法正确识别目标包,进而出现误包含其他包的情况。
解决方案
以下两种方式都能实现仅打包package1的需求:
方式1:直接指定包名
修正packages参数的拼写,匹配实际文件夹名:
from setuptools import setup setup( name="package1", version="0.1.0", description="Package 1", packages=["package1"], # 修正为无空格的正确包名 install_requires=[], python_requires=">=3.8", )
方式2:使用find_packages精准控制
如果包结构更复杂(比如包含子包),推荐用find_packages函数,通过include参数明确指定要打包的范围:
from setuptools import setup, find_packages setup( name="package1", version="0.1.0", description="Package 1", packages=find_packages(include=["package1"]), # 仅包含package1及其子包 install_requires=[], python_requires=">=3.8", )
生成.whl文件
执行以下命令生成wheel包:
# 现代推荐方式 python -m build --wheel # 或者传统方式 python setup.py bdist_wheel
生成的.whl文件会位于dist/目录下,仅包含package1的所有文件。
内容的提问来源于stack exchange,提问作者awesome_sangram
相关产品推荐
相关产品推荐

