跳转到主要内容

callable-pip对pip.main()的广泛应用进行了修补

项目描述

callable-pip

callable-pippip.main() 提供了即插即用的替代方案,并支持通过已知危险的方法对 pip.main 进行猴子补丁。

pip.main() 从未是 pip 的公开支持的API,但它经常被用作这样的API。这个小巧的包旨在填补这一空白并帮助人们轻松过渡到新的用法。

pip.main的即插即用替代方案

此用法在所有受支持的Python版本和任何功能正常的 pip 版本上都可以保证始终有效。

而不是使用 pip.main(...),请使用此方法代替

import callable_pip
callable_pip.main('install', '--upgrade', 'setuptools')

如果您正在编写Python程序,您可以直接使用 callable_pip.main()。这是唯一保证安全的使用方法。

修补pip.main

callable-pip 提供了一个补丁,该补丁将 pip.main() 返回到 pip,但它是危险的,并且已知在某些版本的 pip 上无法工作。

import callable_pip
callable_pip.dangerous_patch()
...
import pip
pip.main('--version')  # actually invokes callable_pip.main()

如果您有使用 pip.main 的依赖项,您可以自己调用 callable_pip.dangerous_patch(),它通常可以工作。

dangerous_patch 被命名为此名称,因为它在所有 pip 版本上并不保证有效,并且它是危险的。尽可能避免使用它。

无源控制的修补

您可能在使用pip.main()的包中是消费者,而这些包的源代码您无法修改或不属于您。以下技术可能对您有所帮助。

有关sitecustomize.py.pth文件的更多详细信息,请参阅Python文档:https://docs.pythonlang.cn/3/library/site.html

请记得在卸载callable_pip时移除这些补丁,否则Python将无法启动。

使用sitecustomize.py应用补丁

sitecustomize.py可以存在于PYTHONPATH中的任何位置,包括python被调用的目录。

添加以下内容的sitecustomize.py,或者将其追加到现有的sitecustomize.py

import callable_pip
callable_pip.dangerous_patch()

使用.pth文件应用补丁

.pth文件可以取任何您想的名字,但必须安装在site-packages目录中。因此,可能需要root或其他高级权限才能添加。

添加一个文件,例如callable_pip.pth,包含以下内容

import callable_pip; callable_pip.dangerous_patch()

文档

所有文档都在这个readme文档中。

错误和问题报告

请在此提交所有错误报告和问题:[https://github.com/sirosen/callable-pip/issues](https://github.com/sirosen/callable-pip/issues)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

callable-pip-1.0.0.tar.gz (3.3 kB 查看哈希)

上传时间:

构建分布

callable_pip-1.0.0-py2.7.egg (4.0 kB 查看哈希)

上传时间:

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面