如何在 setup.py 中使用自定义 PyPI 编写 Python 包?
How to author Python package using custom PyPI in setup.py?
假设我没有互联网,并且在 10.0.0.2 有一个自定义的 PyPI 克隆 运行。
我想编写一个 Python 包,我的内部网上的人可以安装它。它有依赖项 X,依赖于我的自定义 PyPI 克隆。
我如何编写我的包,以便其他人可以安装它,引入依赖项 X,而无需应用任何特殊的 pip 配置?也就是说,我如何编写我的包以便在安装它时引入自定义 PyPI 依赖项?在此约束下,我只能访问编辑 setup.py
.
上下文是我使用的托管服务接受 tar 的 Python 包和 setup.py 文件,然后运行 pip 来安装所有内容。我无权访问 pip 的调用方式或该系统上的任何环境配置。
有没有办法通过 setup.py 单独从 PyPI 的自定义 IP 地址提取包?
据我所知,您无法更新 setup.py 以将其指向从特定服务器下载依赖项。但是,执行 pip 安装的人可以使用 -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"]
)
假设我没有互联网,并且在 10.0.0.2 有一个自定义的 PyPI 克隆 运行。
我想编写一个 Python 包,我的内部网上的人可以安装它。它有依赖项 X,依赖于我的自定义 PyPI 克隆。
我如何编写我的包,以便其他人可以安装它,引入依赖项 X,而无需应用任何特殊的 pip 配置?也就是说,我如何编写我的包以便在安装它时引入自定义 PyPI 依赖项?在此约束下,我只能访问编辑 setup.py
.
上下文是我使用的托管服务接受 tar 的 Python 包和 setup.py 文件,然后运行 pip 来安装所有内容。我无权访问 pip 的调用方式或该系统上的任何环境配置。
有没有办法通过 setup.py 单独从 PyPI 的自定义 IP 地址提取包?
据我所知,您无法更新 setup.py 以将其指向从特定服务器下载依赖项。但是,执行 pip 安装的人可以使用 -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"]
)