簡體   English   中英

如何在 setup.py 中使用自定義 PyPI 編寫 Python 包?

[英]How to author Python package using custom PyPI in setup.py?

假設我沒有互聯網,並且有一個在 10.0.0.2 上運行的自定義 PyPI 克隆。

我想成為一個 Python 包的作者,我的 Intranet 上的某個人可以安裝它。 它有依賴項 X,它存在於我的自定義 PyPI 克隆上。

我如何創作我的包,以便有人可以安裝它,引入依賴項 X,而無需應用任何特殊的 pip 配置? 也就是說,我如何編寫我的包以便安裝它時會引入自定義 PyPI 依賴項? 在此約束中,我只能編輯setup.py

上下文是我使用的托管服務接受帶有 setup.py 文件的 tar'd Python 包,然后運行 ​​pip 來安裝所有內容。 我無權訪問 pip 的調用方式,也無權訪問該系統上的任何環境配置。

有沒有辦法單獨通過 setup.py 從 PyPI 的自定義 IP 地址中提取包?

據我所知,您無法更新 setup.py 以將其指向從特定服務器下載依賴項。 但是,執行 pip install 的人可以使用 -i 標志指定使用哪個服務器來查找包及其依賴項,如下所示

pip install -i http://localhost:8000 <package>

另一方面,可以在 setup.py 中指定依賴項。 在 setuptools.setup 中,您可以像這樣聲明依賴項:

import sys

import setuptools

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

setuptools.setup(
    name="somepackage",
    version="0.0.1",
    author="Your Name",
    author_email="no.replies@example.com",
    description="Some desc",
    long_description=long_description,
    long_description_content_type="text/markdown",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3.8"
    ],
    install_requires=["dependency1", "dependency2"]
)

暫無
暫無

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

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