安装
对于使用 get-pip.py 进行安装,请使用 --force-reinstall 标志:
$ python get-pip.py --force-reinstall
显然这是直到他们解决问题https://github.com/pypa/pip/issues/5220
pip 内部命令的推荐替代方案
避免将任何依赖链接放在您的requirements.txt 文件中。而是使用下面提到的方法。您可以直接将依赖链接放在setup.py 文件中。一些著名的包也以列表的形式维护setup.py文件内部的需求,并且没有任何requirements.txt文件
with open('requirements.txt') as f:
install_requires = f.read().strip().split('\n')
setup(
name='app_name',
.
.
install_requires=install_requires,
dependency_links=[
'https://github.com/frappe/python-pdfkit.git#egg=pdfkit'
],
cmdclass = \
{
'clean': CleanCommand
}
)
从 pip 导入 (不良做法 - 请勿使用,因为它可能随时中断!)
强烈建议您避免这样做,因为如 pip 用户指南中所述,这些方法不是线程安全的。另外,由于它们是 pip 的私有方法,它们可能会在没有任何事先通知的情况下随时更改它,从而破坏您的包安装!
如果你有任何来自 pip 的导入,例如:
from pip.req import parse_requirements
它会坏掉的。由于这些现在已移至 pip._internal ,因此:
from pip._internal.req import parse_requirements
然而,为了向后兼容,您必须使用类似这样的东西:
try: # for pip >= 10
from pip._internal.req import parse_requirements
except ImportError: # for pip <= 9.0.3
from pip.req import parse_requirements
重要
现在说使用内部 pip 函数不是一个好习惯,由于这里提到的多种原因:https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program