python 项目中setup.py文件的作用

1,172 阅读2分钟

setup.py 是 Python 项目中用于项目构建和分发的传统脚本。它是 setuptools 的一部分,一个用于定义、构建和安装 Python 包的库。通过 setup.py,您可以控制项目的打包和分发过程,包括如何构建源代码、安装依赖、打包以及如何安装这个包。

创建 setup.py

  1. 在项目根目录下创建文件:在您的项目根目录下创建一个名为 setup.py 的文件。

  2. 填写基本信息:下面是一个基本的 setup.py 文件结构的例子:

    pythonCopy code
    from setuptools import setup, find_packages
    
    setup(
        name='your_package_name',  # 包名
        version='0.1',  # 版本号
        packages=find_packages(),  # 自动查找项目中的包
        install_requires=[
            # 这里填写项目运行所需的依赖
            # 例如: 'requests>=2.0'
        ],
        entry_points={
            'console_scripts': [
                # 可以定义命令行工具的入口点
                # 例如: 'your_script = your_package.module:main_function'
            ],
        },
        # 其他可选参数
        author='Your Name',
        author_email='your.email@example.com',
        description='A short description of your project',
        long_description=open('README.md').read(),
        long_description_content_type='text/markdown',  # 如果使用markdown作为README文件
        url='https://github.com/yourusername/your_package',
        classifiers=[
            # 分类信息,用于PyPI
            'Programming Language :: Python :: 3',
            'License :: OSI Approved :: MIT License',
            'Operating System :: OS Independent',
        ],
        python_requires='>=3.6',  # 对Python版本的要求
    )
    

setup.py 的作用:

  • 定义项目元数据:包括项目名、版本、作者、联系方式等。
  • 管理依赖:列出项目运行所需的依赖包。
  • 打包与分发:定义如何将项目打包成可分发的格式,例如 wheel 或 source distribution。
  • 安装脚本:当其他用户通过 pip 安装您的包时,setup.py 定义了安装过程。
  • 入口点定义:如果您的包包含命令行工具,可以在此定义入口点。

注意事项:

  • setup.py 通常与 requirements.txt(列出依赖包)和 README.md(项目描述)一起使用。
  • 新的 Python 项目可能会倾向于使用更现代的打包工具,如 Poetry 或 Flit,它们使用 pyproject.toml 文件代替 setup.py。但是,setup.py 依然广泛用于许多现有项目。