如何打包python程序,以便用户可以使用setup.py安装它

2024-04-20 10:21:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有一个python文件,要求我将其转换为python模块,用户可以使用python setup.py install安装它。我不知道该怎么做。我在网上按照一些说明创建了setup.py文件和init.py文件。setup.py文件如下所示:

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="",
    version="0.0.1",
    author="",
    author_email="",
    description="",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/pypa/sampleproject",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.6',
)

我不确定这个setup.py文件是否正确。我也不知道下一步该怎么做。谁能帮帮我,告诉我该怎么办?有教程教这个吗?我真的找不到任何相关的东西。我的setup.py是否正确?谢谢


Tags: 模块install文件用户pyimportinitlicense
1条回答
网友
1楼 · 发布于 2024-04-20 10:21:20

包装有几种方法^python.org上的{a1}和setuptools docs是一个良好的开端

不幸的是,示例往往侧重于包分发,而不是单个模块。使用py_modules关键字代替packages。假设您的模块名为“test.py”,那么setup.py将正常工作

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="test",
    version="0.0.1",
    author="",
    author_email="",
    description="",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/pypa/sampleproject",
    py_modules = ["test"],
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.6',
)

如果您认为这将扩展到多个模块,那么您可以继续使用 setuptools.find_packages()。在本例中,您需要一个以所需包命名的子目录,并将init放在其中

some_random_project_file
    +  setup.py
        README.md
        LICENCE
    +  test
        +  __init__.py
            test.py

相关问题 更多 >