簡體   English   中英

如何 package 我的 python 程序,以便用戶可以使用 setup.py 安裝它

[英]How to package my python program so the user can install it using setup.py

我現在有一個 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 也是正確的嗎? 謝謝!

有幾種方法可以進行包裝。 打包 Python python.org 和setuptools 文檔上的項目是一個好的開始。

不幸的是,示例傾向於關注 package 發行版,而不是單個模塊。 而不是packages ,使用py_modules關鍵字。 假設您的模塊名為“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',
)

如果您認為這將擴展到多個模塊,那么您可以 go 重新使用setuptools.find_packages() 在這種情況下,您需要一個以所需 package 命名的子目錄並將 init 放入其中

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM