【问题标题】:How do I install a Python package with a .whl file?如何安装带有 .whl 文件的 Python 包?
【发布时间】:2015-03-09 05:45:33
【问题描述】:

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

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

但是如何安装 .whl 文件?

注意事项

  • 我找到了documents on wheel,但它们在解释如何安装 .whl 文件时似乎并不那么直截了当。
  • 此问题与 this question 重复,未直接回答。

【问题讨论】:

  • 究竟是什么促使了从 exe 到 whl 的转变?通常人们试图让事情变得更容易使用而不是更难。
  • @rhaskett 与 .exe 相比的好处是,发布者只需(通常)上传一个轮子即可支持所有 Python 版本。不过,您是对的,对于尝试安装软件包的人来说,轮子不太容易。如果您可以双击 .whl 文件,那就太好了。
  • pip install ... 不需要 wheel 包; pip wheel ... 会。

标签: python pip python-wheel downloadfile jpype


【解决方案1】:

理论上:

因为wheelbuilt distribution 规范,即不依赖于构建系统,并且因为它是一个ZIP 格式的存档,它只需解压到目标位置才能使用。

虽然pip install *.wheel 增加了额外的features,但我们也可以将.whl 文件解压缩(使用标准的存档工具,例如:7zip)到site-packages 目录中以使用该包。

https://packaging.python.org/specifications/binary-distribution-format/

【讨论】:

    【解决方案2】:

    在 python2 和 python3 中访问 .whl 文件略有不同。在python3中,需要先安装wheel,然后才能访问.whl文件。

    Python3

    pip install package.whl
    

    pip install wheel
    

    然后使用轮子

    wheel unpack some-package.whl
    

    Python2

    pip install some-package.whl
    

    【讨论】:

    • unpack 只是解压内容,似乎没有安装它
    • @ItamarKatz 您可以使用命令pip install package.whl 直接安装。
    【解决方案3】:

    首先,确保您已更新 pip 以启用车轮支持:

    pip install --upgrade pip
    

    然后,要从 wheel 安装,请将下载 wheel 的目录提供给它。比如安装package_name.whl

    pip install --use-wheel --no-index --find-links=/where/its/downloaded package_name
    

    【讨论】:

    • 什么是“轮子”?
    • 在 pip 19.0.1 (python 2.7) 中不使用--use-wheel
    • @PeterMortensen 封装格式,whl是什么的缩写
    • 能否请您在此答案和最佳答案中显示两个命令之间的区别?
    【解决方案4】:

    下载包 (.whl)。

    将文件放到python目录的脚本文件夹中

    C:\Python36\Scripts
    

    使用命令提示符安装包。

    C:\Python36\Scripts>pip install package_name.whl
    

    【讨论】:

      【解决方案5】:

      编辑:这不再是 PIP 的一部分

      为避免下载此类文件,您可以尝试:

      pip install --use-wheel pillow
      

      欲了解更多信息,see this

      【讨论】:

      • 确保之前已经通过 python -m pip install --upgrade pip 安装了最新版本的 pip
      • use-wheel 选项不再起作用,该网站不存在并被一些中文网站取代
      【解决方案6】:

      我会建议您安装 .whl 文件的确切方法。 最初我遇到了很多问题,但后来我解决了,这是我安装 .whl 文件的技巧。

      正确遵循这些步骤以导入模块

      1. 确保您的 .whl 文件保存在 python 2.7/3.6/3.7/.. 文件夹中。 最初,当您下载 .whl 文件时,该文件保存在下载的文件夹中,我的 建议是更改文件夹。它使安装文件更容易。
      2. 打开命令提示符并通过输入打开您保存文件的文件夹

      cd c:\python 3.7

      3.现在,输入下面写的命令

      >py -3.7(version name) -m pip install (file name).whl
      
      1. 单击 Enter 并确保输入当前使用的版本并正确 文件名。

      2. 一旦你按下回车,等待几分钟,文件将被安装,你将 能够导入特定的模块。

      3. 为了检查模块是否安装成功,导入空闲模块 并检查一下。

      谢谢:)

      【讨论】:

        【解决方案7】:

        我首先使用以下命令更新 pip: pip install --upgrade pip 然后我还使用命令安装了轮子:pip install wheel 然后它工作得很好。

        我猜希望它对你有用。

        【讨论】:

          【解决方案8】:

          在 MacOS 上,通过 MacPorts 将 pip 安装到 MacPorts python2.7 中,我不得不使用 @Dunes 解决方案:

          sudo python -m pip install some-package.whl
          

          在我的例子中,python 被 MacPorts python 取代,对我来说是 python2.7python3.5

          根据手册页,-m 选项是“将库模块作为脚本运行”。

          (我之前曾运行sudo port install py27-pip py27-wheel 以首先将pipwheel 安装到我的python 2.7 安装中。)

          【讨论】:

            【解决方案9】:

            如果您无法直接使用 PIP 安装特定软件包。

            您可以从 - https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载特定的 .whl (wheel) 包

            CD(更改目录)到下载的软件包并通过 -
            pip install PACKAGENAME.whl
            手动安装 例如:
            pip install ad3‑2.1‑cp27‑cp27m‑win32.whl

            【讨论】:

              【解决方案10】:

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

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

              【讨论】:

                【解决方案11】:

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

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

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

                以便您知道应该为您的计算机安装哪个版本。选择错误的版本可能会导致安装包失败(尤其是如果您没有使用正确的 CPython 标签,例如 cp27)。

                【讨论】:

                • 谢谢,找不到此信息!但是,我不确定如何读取输出以确定我需要哪个版本。
                • PIP 21.1.1 AttributeError: 模块 'pip' 没有属性 'pep425tags'
                【解决方案12】:

                我和 OP 在同一条船上。

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

                C:\Python34\Scripts>
                pip install wheel
                

                似乎有效。

                将目录更改为 whl 所在的位置,它只是告诉我“无法识别 pip”。回到C:\Python34\Scripts>,然后使用上面的完整命令提供'where/its/downloaded'位置,它显示Requirement 'scikit_image-...-win32.whl' looks like a filename, but the filename does not exist

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

                【讨论】:

                • @EinarSundgren 我不同意,他列出了导致他解决 op 问题的所有步骤。
                • 为了避免在运行 pip 时必须站在C:\Python34\Scripts 目录中,请将该目录添加到系统路径中。对于那些不知道怎么做的人:windowsitpro.com/systems-management/…
                • 一个额外的例子,在打开命令提示符后,我只是粘贴进去并回车。不需要其他任何东西:C:\Python34\python.exe -m pip install requests 它会自动下载“requests”包并安装它。
                • 最后一条评论对我来说非常有效。可以作为答案发布!
                【解决方案13】:

                为了能够通过简单的双击来安装 Wheel 文件,您可以执行以下操作之一:

                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
                

                详情请见我的blog post

                【讨论】:

                • 有用!谢谢你,阿西尔和安东尼。据推测,为了避免依赖路径中的 Scripts 文件夹,您可以使用: cmd /c python -m pip install "%1" & pause
                • 好吧,我错了。你必须使用 pip.exe。但是,另一个问题是,如果您使用如图所示的 ftype 命令,“暂停”将在命令提示符下运行,而不是作为文件关联的一部分存储在注册表中。您需要运行 regedit 在注册表的 shell 命令中添加“& pause”。 (只需在注册表中搜索 pythonwheel。)
                • @DaveBurton 我已经修复并更新了我的答案。谢谢。
                【解决方案14】:

                Windows 上的新 Python 用户在安装过程中经常忘记将 Python 的 \Scripts 目录添加到 PATH 变量中。我建议使用 Python 启动器并使用 -m 开关将 pip 作为脚本执行。然后,您可以为特定的 Python 版本(如果安装了多个版本)安装轮子,并且脚本目录不必位于 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
                

                【讨论】:

                  【解决方案15】:

                  您必须在我的计算机上从命令提示符运行 pip.exe。 我输入C:/Python27/Scripts/pip2.exe install numpy

                  【讨论】:

                  【解决方案16】:

                  我设法安装 NumPy 的唯一方法如下:

                  我从这里下载了 NumPy https://pypi.python.org/pypi/numpy

                  本模块

                  https://pypi.python.org/packages/d7/3c/d8b473b517062cc700575889d79e7444c9b54c6072a22189d1831d2fbbce/numpy-1.11.2-cp35-none-win32.whl#md5=e485e06907826af5e1fc88608d0629a2
                  

                  PowerShell 中从 Python 的安装路径执行命令

                  PS C:\Program Files (x86)\Python35-32> .\python -m pip install C:/Users/MyUsername/Documents/Programs/Python/numpy-1.11.2-cp35-none-win32.whl
                  Processing c:\users\MyUsername\documents\programs\numpy-1.11.2-cp35-none-win32.whl
                  Installing collected packages: numpy
                  Successfully installed numpy-1.11.2
                  PS C:\Program Files (x86)\Python35-32>
                  

                  PS.:我在 Windows 10 上安装了它。

                  【讨论】:

                    【解决方案17】:

                    我只是使用了以下非常简单的方法。首先打开一个控制台,然后 cd 到您下载文件的位置,例如 some-package.whl 并使用

                    pip install some-package.whl
                    

                    注意:如果 pip.exe 无法识别,您可以在安装 python 的“脚本”目录中找到它。如果未安装 pip,此页面可以提供帮助: How do I install pip on Windows?

                    注意:为了澄清
                    如果您将 *.whl 文件复制到本地驱动器(例如 C:\some-dir\some-file.whl),请使用以下命令行参数 --

                    pip install C:/some-dir/some-file.whl
                    

                    【讨论】:

                    • 你确实不需要需要pip install wheel。命令pip install some-package.whl 就足够了。只需确保 pip 已更新,如 burhan-khalid 所述。
                    • 另外,您应该以管理员身份打开命令提示符以便在 windows 中运行 pip
                    • 如果在 PATH 中找不到 pip,python -m pip install some-package.whl 也可以使用。
                    • 在离线设置中安装 Python 模块令人愤怒。显然没有点。好的,所以有一个 setup.py ......但它不起作用?哦,它需要安装工具。精彩的。好的,安装 setuptools - 这是什么,.whl?哦,那需要点子!感觉就像我被困在一个循环中。
                    • 对于 python 3,我一直在使用 pip3 而不是 pip(我有 2.7,现在有 3.4)。无论如何,这是一个友好的提醒,有时pip3 是您所需要的。
                    【解决方案18】:

                    在 Windows 上,您不能只使用 pip install --upgrade pip 进行升级,因为 pip.exe 正在使用中,替换它时会出错。相反,您应该像这样升级pip

                    easy_install --upgrade pip
                    

                    然后查看pip版本:

                    pip --version
                    

                    如果显示6.x系列,有轮子支持。

                    只有这样,你才能安装这样的轮子包:

                    pip install your-package.whl
                    

                    【讨论】:

                    • 我刚刚在 Windows 7 上使用 pip install --upgrade pip 升级了 pip,它运行良好——所以你所说的部分内容似乎不正确。
                    • 也许 pip 家伙意识到了这一点并在新版本中解决了这个问题......我不知道。至少在发布答案时(2015 年初)我确实遇到了错误。
                    • 你可能是对的。实际上,大多数时候,pip 会告诉我它有更新的版本可用,并提供自行升级,所以我很少手动进行。
                    • 在 Windows 10 上运行 Python 3.5.2,"python -m pip install --upgrade pip" 刚刚成功将 pip-8.1.1 升级到 pip-8.1.2
                    猜你喜欢
                    • 2017-03-19
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-11-22
                    • 2015-02-19
                    • 1970-01-01
                    • 2017-09-24
                    • 2015-02-20
                    相关资源
                    最近更新 更多