让 pip 忽略现有的***
Posted
技术标签:
【中文标题】让 pip 忽略现有的***【英文标题】:make pip ignore an existing wheel 【发布时间】:2016-11-10 20:19:46 【问题描述】:如果.whl
在线可用,pip
总是安装它而不是从源代码编译。但是,对于某些特定的模块,***恰好是为下一代处理器编译的,并且不能在特定的机器上运行。
如果我命令它只下载包,那么它仍然下载***而不是源代码。 pip
是否有某种机制来覆盖此首选项?
【问题讨论】:
@MosesKoledoye 不,这不受本地缓存的影响。 对不起。我想你可以直接从git
进行安装,如果源有一个pip install git+https://repourl
@MosesKoledoye 然后我需要以某种方式手动了解该软件包在线上有一个 git repo 以及它在哪里。 FWIW,我可以手动本地化源代码并编译它,所有这些都不需要pip
。
另外,你应该向上游报告这样的***,显然它的版本没有正确标记
@AnttiHaapala 它被标记为“win32”。我不知道车轮上有任何更具体的(例如“ix86”)标记。有吗?
【参考方案1】:
尝试使用
pip install <package> --no-binary :all:
您可以在pip install --help
中找到此选项(以及它所采用的值)。
还有 --no-use-wheel
选项,但已被弃用,取而代之的是上述选项,并在 pip
10.0.0
中删除。
这里是官方文档中的参考:
https://pip.pypa.io/en/stable/reference/pip_install/#install-no-binary
【讨论】:
使用自制 Python 安装和使用 4 字节 Unicode (UCS-4) 符号构建的 python-levenshtein 的***遇到了这个问题,而我的 Python 只是 UCS-2。我得到的回溯与here:undefined symbol: PyUnicodeUCS4_FromUnicode
描述的类似。使用pip install --no-binary
从源代码安装(忽略***)完全成功了!
建议的编辑队列已满,但这里是正确的链接:pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-binary以上是关于让 pip 忽略现有的***的主要内容,如果未能解决你的问题,请参考以下文章