#python #numpy
#python #numpy
Вопрос:
Я новичок в python. Когда я хочу установить NumPy, я не работал, и особенно когда выполнение достигает этой строки «Подготовка метаданных колеса», и вот ошибка:
C:Usersdell>pip install numpy
Defaulting to user installation because normal site-packages is not writeable
Collecting numpy
Using cached numpy-1.19.2.zip (7.3 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... error
ERROR: Command errored out with exit status 1: 'c:program filespython39python.exe' 'c:program filespython39libsite-packagespip_vendorpep517_in_process.py' prepare_metadata_for_build_wheel 'C:UsersdellAppDataLocalTemptmphnzlje19' Check the logs for full command output.
Ответ №1:
Эта pip install
команда пытается создать numpy из исходного кода. Вы можете видеть это, потому .zip
что вместо файла wheel загружается .whl
файл. .zip
Файл содержит исходный код. Большая часть NumPy написана на C и нуждается в компиляции, но, скорее всего, на вашем компьютере не установлен компилятор. Файл wheel ( .whl
) не нужно компилировать — он включает уже скомпилированный код, поэтому вам не нужен компилятор.
РЕДАКТИРОВАТЬ (15 декабря 2020 г.): файлы wheel доступны для версии 1.19.4, поэтому их можно использовать pip install numpy
с python 3.9.
Согласно https://pypi.org/project/numpy/#files , для python 3.9 пока нет файла wheel, поэтому ваши варианты — создать numpy из исходного кода, использовать python 3.8, пока не появится numpy wheel для python 3.9, или использовать conda
, который уже распространяет numpy для python 3.9.
Ответ №2:
Используя
py -m pip установить numpy
исправлена проблема. Не понял этого маленького и приятного исправления. обновление pip не решило проблему с ошибкой сборки файла проекта **.toml в моем случае. Я обнаружил разницу в том, что он напрямую создает диски вместо файла tar / rar.Преимущество заключается в том, что файл wheels — это уже предварительно скомпилированные файлы, а файлы tar сначала необходимо разархивировать и окончательно скомпилировать.