python - 如何在 setup.py 中使用自定义 PyPI 编写 Python 包?
问题描述
假设我没有互联网,并且自定义 PyPI 克隆运行在 10.0.0.2。
我想编写一个我的 Intranet 上的某个人可以安装的 Python 包。它具有依赖项 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"]
)
推荐阅读
- python - Cython中python字典/对象/json的c数据类型是什么?
- javascript - 如何使用 Webpack 安装 FlipDown.js 库?
- html - 修复标题溢出父容器
- node-red - http请求头的全局配置
- c# - Xml 集合的反序列化
- amazon-cloudwatchlogs - 过滤特定字符串并包括以下 2 行
- java - 设备上的 android 应用程序到 PC netbeans java 服务器之间的数据传输
- docker - Dockerfile 未知标志:chown
- java - 如果 MongoDB 关闭并且操作处于挂起状态,应该采取什么策略
- swift - 仅在 collectionViewCell 内的单个对象上刷新或重新加载数据