由于某些错误,无法安装 Kivy

由于某些错误,无法安装 Kivy

我正在尝试安装猕猴桃但由于下面给出的问题,它无法安装。

Pastebin 链接

请帮忙解决此问题。谢谢。

我正在使用pip3它来安装它。

python -m pip install kivy==1.11.1

我已经遵循了本网站

由于我无法在此处发布错误,因此我已在 pastebin.com 上发布。

预期行为:

需要安装 Kivy。

当前行为:

Kivy 无法安装并导致问题。

这是尝试安装 MS Visual C++ 14.0 时的日志:

[6198:3BE8][2019-12-29T19:15:17]i108: Detected compatible package: vcRuntimeAdditional_x86, provider: Microsoft.VS.VC_RuntimeAdditionalVSU_x86,v14, installed: {C9DE51F8-7846-4621-815D-E8AFD3E3C0FF}, version: 14.20.27508, chained: {BE960C1C-7BAD-3DE6-8B1A-2616FE532845}
[6198:3BE8][2019-12-29T19:15:17]i103: Detected related package: {C9DE51F8-7846-4621-815D-E8AFD3E3C0FF}, scope: PerMachine, version: 14.20.27508.0, language: 0 operation: Downgrade
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i052: Condition '(windows_uCRT_DetectKeyExists AND windows_uCRT_DetectKey >= v10.0.10137.0)' evaluates to false.
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: vcRuntimeMinimum_x86, state: Obsolete, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: vcRuntimeAdditional_x86, state: Obsolete, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: Windows81_x86, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: Windows81_x64, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: Windows8_x86, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: Windows8_x64, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: Windows7_MSU_x86, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: Windows7_MSU_x64, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: WindowsVista_MSU_x86, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i101: Detected package: WindowsVista_MSU_x64, state: Absent, cached: None
[6198:3BE8][2019-12-29T19:15:17]i052: Condition 'VersionNT >= v6.0 OR (VersionNT = v5.1 AND ServicePackLevel >= 2) OR (VersionNT = v5.2 AND ServicePackLevel >= 1)' evaluates to true.
[6198:3BE8][2019-12-29T19:15:17]i199: Detect complete, result: 0x0
[6198:1334][2019-12-29T19:15:20]e000: Error 0x80070666: Cannot install a product when a newer version is installed.

抱歉在这里发帖,因为我不知道在哪里问这个问题。

我是否在正确的地方提出了问题?

答案1

pip来自吡啶甲酸在撰写本文时,PyPI 上的 Kivy 1.11.1只有适用于 Python 2.7 和 3.5 的轮子 - 3.7

根据您的 Pastebin 输出,您似乎正在使用 Python 3.8。这意味着 Python 目前无法使用 PyPI 中任何预构建的轮子。并且pip似乎在为 Python 3.8 从头编译 Kivy 时遇到了问题(这对于 Windows 上更复杂的项目/模块来说并不罕见)。

作为一般建议,你应该考虑使用当前版本,例如 Python 3.7(例如 Python 3.7.6),因为这应该可以毫不费力地解决您遇到的问题。


多个 Python 安装

在 Windows 上,你可以安装多个版本的 Python,而一个安装不会影响其他版本。只需通过正常安装过程安装你想要使用的附加版本的 Python(例如,使用 vanilla 安装程序)即可python.org链接见上文)。

注意事项

然而,话虽如此,仍有一些事情需要注意:

  • 为了确保没有问题,您可能需要考虑使用自定义安装选项,而不是默认的“简单”安装。

  • Python 的特定分支通常会使用相同的默认文件夹(例如Python37-32Python38-32等)。

    由于您打算使用不同版本的 Python,因此这可能不是问题。但请注意,您可以根据需要更改 Python 的默认安装文件夹(在自定义安装选项下)。

  • 一次只能有一个版本的 Python 驻留在您的 Windows 环境路径中(即只需使用 即可访问python)。

    您将需要通过其完整路径(例如)引用当前不在您的路径中的任何其他版本,C:\path\to\Python37\python.exe或使用其他方式引用适当的版本python.exe(请参阅本答案末尾的注释)。

  • pip同样,您的 Windows 环境路径中一次只能驻留一个版本。

    如果你希望使用与特定 Python 版本关联的版本pip(正确安装模块所必需),我建议使用python -m pip而不是仅仅pip。因此,要安装 Kivy,你可以使用例如C:\path\to\Python37\python.exe -m pip install Kivy

  • 与您的文件扩展名关联的 Python 版本.py和可从命令行(使用python)获得的版本之间可能存在断开连接。

    这不是真正的问题,但这种情况可能会导致module not found错误。因此,您可能需要将.py文件扩展名与要使用的 Python 的默认安装(重新)关联,或者使用正确的 Python 版本显式调用脚本(例如C:\path\to\Python37\python.exe script.py)。


引用另一个 Python 版本

如果您想python/pip在命令行中使用多个版本而不使用完整路径,有几种方法可以解决此要求。

选项1

使用适用于 Windows 的 Python 启动器py.exe),它通常默认随 Windows 上的 vanilla Python 一起安装。您可以py.exe通过运行以下命令来验证它是否已安装并位于您的环境路径中:

where py

假设where返回一个路径(而不是INFO: Could not find files for the given pattern(s)),然后您可以使用例如与Python 3.7进行交互。py -3.7 script.py并通过以下方式将Kivy安装到Python 3.7中py.exe

py -3.7 -m pip install Kivy

选项 2

创建.bat引用正确位置的文件(也捕获任何命令行参数)并将它们放在您的环境路径中,例如:

例如 python37.bat

C:\path\to\Python37\python.exe %*

例如 pip37.bat

C:\path\to\Python37\Scripts\pip.exe %*

.bat然后可以相应地使用这些文件,例如。python37 script.py要使用这些批处理文件安装 Kivy:

python37 -m pip install Kivy

或者:

pip37 -m pip install Kivy

选项 3

将 eg 添加C:\path\to\Python37到 Windows 环境变量中(例如在安装期间),然后在 Python 3.7 文件夹和 Python 3.7 文件夹中重命名python.exe和(分别)。然后,您可以(再次)在 Python 3.7 的命令行中使用类似 eg和的内容。pip.exeScriptspython37.exepip37.exe

虽然这种方法没有太多问题,但一个缺点是 Python 本身将来可能无法升级/删除这些不规则命名的文件(在这些情况下您需要采取额外步骤)。

相关内容