在不使用 pip 的情况下安装 python wheel 文件

Posted

技术标签:

【中文标题】在不使用 pip 的情况下安装 python wheel 文件【英文标题】:Install python wheel file without using pip 【发布时间】:2016-07-08 00:56:33 【问题描述】:

是否可以不使用pip 来安装 Python ***?我总是在使用pip 安装时遇到问题,所以我通常通过复制和粘贴来手动安装库。我想知道是否有办法以类似的方式制作轮文件。

【问题讨论】:

【参考方案1】:

我假设您可以访问互联网,但您没有安装有效的 pip

下载点子轮:

wget https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl

要首先找到发布的 url,您可以获取索引 json 端点。例如:

$ curl -s https://pypi.org/pypi/pip/json | jq ".urls[0].url"
"https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl"

对于不编写脚本而只是一次性执行的用户,您可能更愿意使用浏览器简单地下载一个点子轮。在这种情况下,请在此处查找最新的发布文件:https://pypi.org/project/pip/#files

现在你有了一个用于 pip 的***,以及你想要安装的其他***文件。您实际上可以“执行” pip wheel 文件来安装其他 wheel 文件。例如,如果您尝试从 bdist 安装 setuptools v39.0.1,命令将如下所示:

$ python pip-10.0.1-py2.py3-none-any.whl/pip install --no-index setuptools-39.0.1-py2.py3-none-any.whl
Processing ./setuptools-39.0.1-py2.py3-none-any.whl
Installing collected packages: setuptools
Successfully installed setuptools-39.0.1

您现在可以安装 setuptools,即使没有安装 pip。

如果您想知道,是的,您可以使用相同的技巧来安装 pip 本身。该命令如下所示:

python pip-10.0.1-py2.py3-none-any.whl/pip install --no-index pip-10.0.1-py2.py3-none-any.whl

现在你应该有一个工作 pip 安装,与 python 可执行文件指向的任何解释器相关联。

【讨论】:

下载你说的点子轮!但是怎么找呢?那么第二个*** - 用于 setuptools 呢?它们存在,我知道——这就是 cpython 在 ensurepip 中包含的内容。但找到他们?不那么容易恕我直言。没有否决票(甚至可能无法考虑我在这里的地位;)-但恕我直言-只有一半的答案。 @MichaelFelt 好的,我已经添加了有关如何自动从索引中查找下载 url 的说明。 非常感谢!我在找什么! - 除了,似乎我还需要一个新命令(jq)。反正我可以挖。谢谢! 一个方便的方式来下载包的***是使用带有--only-binary=wheel 说明符的pip download 命令,例如pip download --only-binary=wheel pip. 从 wheel 文件执行命令的技巧真是太棒了。【参考方案2】:

是的。实际上 .whl 文件只是 zip 档案,因此您可以提取它们的内容并使用库路径变量来使其工作。 然而,这确实是一种糟糕的做法。

【讨论】:

使用库路径变量使其工作?能否给出cmd行代码来执行? @Code_10 查看这篇文章leemendelowitz.github.io/blog/… 如果不知道解压到哪里,可以这样看python路径:import sys; print(sys.path) 您也可以简单地将包含内容的文件夹放入默认的python库路径(通常是/lib//site-packages/)。再一次,做起来很丑陋。 “但这确实是个糟糕的做法。”你能详细说明一下吗?

以上是关于在不使用 pip 的情况下安装 python wheel 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用pip或conda安装的情况下链接Selenium等库?

在不安装的情况下导入 Python 库

在没有 pip/pip3 的情况下安装诸如“Web3”之类的 python 模块?

如何在不更改路径环境变量的情况下安装 python 包?

如何在不安装的情况下列出python库的依赖项? [复制]

如果我使用 pip 安装模块,我如何确保其他人可以在不安装该模块的情况下运行我的程序?