Мне удалось установить несколько популярных пакетов Python с помощью pip в Windows (точнее, с помощью команды py -m pip install <packagename>
).
Такие пакеты, как numpy, pandas, matplotlib, pyqt5 и т. д., не вызвали проблем при установке, но некоторые пакеты, такие как scipy и scikit-learn, выдают ошибки.
Collecting scipy
Using cached scipy-1.10.1.tar.gz (42.4 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [14 lines of output]
+ meson setup --prefix=C:\Users\XYZ\AppData\Local\Programs\Python\Python38-32 C:\Users\XYZ\AppData\Local\Temp\pip-
install-kcwepnco\scipy_545e8a24382142de9b0a2e3bbeb71b01 C:\Users\XYZ\AppData\Local\Temp\pip-install-kcwepnco
\scipy_545e8a24382142d
e9b0a2e3bbeb71b01\.mesonpy-k7npgzdq\build --native-file=C:\Users\XYZ\AppData\Local\Temp\pip-install-kcwepnco
\scipy_545e8a24382142de9b0a2e3bbeb71b01\.mesonpy-native-file.ini -Ddebug=false -Doptimization=2
The Meson build system
Version: 1.4.1
Source dir: C:\Users\XYZ\AppData\Local\Temp\pip-install-kcwepnco\scipy_545e8a24382142de9b0a2e3bbeb71b01
Build dir: C:\Users\XYZ\AppData\Local\Temp\pip-install-kcwepnco\scipy_545e8a24382142de9b0a2e3bbeb71b01\.mesonpy-
k7npgzdq\build
Build type: native build
Project name: SciPy
Project version: 1.10.1
C compiler for the host machine: cl (msvc 12.00.8168 "Microsoft (R) 32-bit C/C++ Optimizing Compiler Version
12.00.8168 for 80x86")
C linker for the host machine: link link 6.00.8168
..\..\meson.build:1:0: ERROR: None of values ['c++14'] are supported by the C++ compiler. Possible values are
['none', 'none', 'c++11', 'vc++11']
A full log can be found at...
[end of output]
...
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Я понятия не имею, что происходит.
Моя ОС — Windows 8, а версия Python — 3.8.
Я обновил pip, а также попробовал:
py -m pip install --upgrade pip setuptools wheel
Но после этого все равно не повезло.
Я относительно новичок в Python, поэтому буду очень признателен за подробное или простое решение с использованием pip.
🤔 А знаете ли вы, что...
С Python можно создавать кросс-платформенные приложения для Windows, macOS и Linux.
Поскольку вы используете более старую версию Python и Windows, у вас может возникнуть множество проблем, рассмотрите возможность обновления. Указанная выше проблема также вызвана устаревшими средами.
Для стабильной версии scipy требуется: Python >=3.9, а также для стабильной версии scikit-learn требуется: Python >=3.9.
Вы можете обновить свой Python, чтобы исправить эту ошибку. Также обратите внимание, что расширенная поддержка Python 3.8 закончится в октябре 2024 года.
Прямая проблема, которую вы видите, заключается в том, что у scipy
есть C-бэкенд, который pip
пытается скомпилировать, но обнаруживает, что ваш компилятор не поддерживает необходимые для этого параметры:
ERROR: None of values ['c++14'] are supported by the C++ compiler
Обычно для такого типа библиотек (особенно для Windows) их компиляция самостоятельно может оказаться довольно сложной, поэтому часто доступны предварительно скомпилированные версии. Если вы посмотрите https://pypi.org/project/scipy/1.10.1/#files, вы увидите
scipy-1.10.1-cp39-cp39-win_amd64.whl
означает scipy, версия 1.10.1, CPython 3.9, windows x64.У вас есть 32-битный вариант Python, но если вы проверите связанный список доступных файлов для scipy 1.10.1, то обнаружите, что файлов .whl для окон, отличных от x64, нет. Это создаст проблемы не только с scipy
, но и с другими пакетами, поскольку поддержка 32-битных версий Python больше не является стандартной.
Поэтому я рекомендую удалить текущую версию Python и вместо этого установить 64-битную версию. Если возможно, рассмотрите возможность использования более последней версии Python.