我在Windows机器上安装Python包时遇到了麻烦,我想用Christoph Gohlke的Windows二进制文件安装它。(根据我的经验,这大大减轻了许多其他包安装的麻烦)。但是,只有.whl文件可用。

http://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype

但是我如何安装。whl文件?

笔记

我在轮子上发现了一些文档,但它们似乎没有那么直截了当地解释如何安装.whl文件。 这个问题和这个问题是重复的,这个问题没有直接回答。


当前回答

Windows上的Python新用户经常忘记在安装过程中将Python的\Scripts目录添加到PATH变量中。我建议使用Python启动器,并使用-m开关将pip作为脚本执行。然后,您可以为特定的Python版本安装轮子(如果安装了多个),并且Scripts目录不必在PATH中。所以打开命令行,导航(使用cd命令)到.whl文件所在的文件夹,然后输入:

py -3.6 -m pip install your_whl_file.whl

将3.6替换为您的Python版本,如果所需的Python版本首先出现在PATH中,则只需输入-3。并且使用一个活动的虚拟环境:py -m pip install your_whl_file.whl。

当然,您也可以通过这种方式从PyPI安装包,例如:

py -3.6 -m pip install pygame

其他回答

您可以使用pip install filename安装.whl文件。尽管要以这种形式使用它,它应该在与命令行相同的目录中,否则指定完整的文件名,以及它的地址,如pip install C:\Some\PAth\filename。

还要确保.whl文件与你正在使用的平台相同,执行python -V来找出你正在运行的python版本,如果是win32或64,根据它安装正确的版本。

为了能够安装车轮文件与一个简单的双击他们,你可以做以下一项:

1)以管理员权限在命令行中执行以下命令:

assoc .whl=pythonwheel
ftype pythonwheel=cmd /c pip.exe install "%1" ^& pause

2)或者,它们可以复制到wheel.bat文件中,并在属性中使用“以管理员身份运行”复选框执行。

PS pip.exe被假定在PATH中。

更新:

(1)可以合并成一行:

assoc .whl=pythonwheel& ftype pythonwheel=cmd /c pip.exe install -U "%1" ^& pause

(2) .bat文件的语法略有不同:

assoc .whl=pythonwheel& ftype pythonwheel=cmd /c pip.exe install -U "%%1" ^& pause

它的输出也可以更详细:

@assoc .whl=pythonwheel|| echo Run me with administrator rights! && pause && exit 1
@ftype pythonwheel=cmd /c pip.exe install -U "%%1" ^& pause || echo Installation error && pause && exit 1
@echo Installation successfull & pause

详见我的博客文章。

在伟大的Christoph Gohlke的网站上有几个文件版本。

当从这个站点安装轮子时,我发现一些重要的事情是首先从Python控制台运行:

import pip
print(pip.pep425tags.get_supported())

这样你就知道你的电脑应该安装哪个版本。选择错误的版本可能会导致包的安装失败(特别是如果您没有使用正确的CPython标记,例如cp27)。

你必须在我电脑上的命令提示符下运行pip.exe。 我输入C:/Python27/Scripts/pip2.exe安装numpy

我和行动组处境相同。

使用Windows命令提示符,从目录:

C:\Python34\Scripts>
pip install wheel

似乎起作用了。

更改目录到whl所在的位置,它只是告诉我'pip不被识别'。回到C:\Python34\Scripts>,然后使用上面的完整命令提供'where/its/ downloads '位置,它说需求'scikit_image-…-win32。Whl '看起来像一个文件名,但文件名不存在。

所以我在Python34/Scripts中删除了一个.whl的副本,再次运行完全相同的命令(使用——find-links=仍然指向另一个文件夹),这一次它成功了。