Как позволить PyPy распознавать библиотеки линейной алгебры (Intel MKL, OpenBLAS)? Проблема переменных среды? - PullRequest
0 голосов
/ 15 мая 2019

У меня установлена ​​рабочая версия Python 3.6, и я хотел попробовать PyPy для эвристического алгоритма.Я установил PyPy, используя это руководство: Как использовать PyPy в Windows? и запустил его, а также установил, например, модуль openpyxl через: pypy3 -m pip install openpyxl

Однако при попытке установить numpyили панды, я получаю следующее сообщение об ошибке:

"ошибка: требуется Microsoft Visual C ++ 14.1. Получить его с помощью инструментов сборки Microsoft Visual C ++": https://visualstudio.microsoft.com/downloads/"

Я перепробовал всеиз следующих решений: Требуется Microsoft Visual C ++ 14.0 (Невозможно найти vcvarsall.bat) , а именно:

  1. Обновлены установочные инструменты pypy3 -m pip install --upgrade setuptools
  2. Установлены различные видыMicrosoft Visual Studio / Инструменты сборки, как упомянуто в комментариях к этому вопросу.
  3. Попытка установить numpy с использованием опции только двоичного файла pypy3 -m pip install --only-binary :all:numpy
  4. Попытка обновления setuptools и установка numpy из команды VSподскажите.

Ничего из этого не помогло мне.Лучшее, что я придумал, это то, что это может быть связано с переменными среды.В документации PyPy (http://doc.pypy.org/en/latest/windows.html) написано:

"При установке будет задана переменная среды VS140COMNTOOLS, это ключ к distutils / setuptools при поиске компилятора"

Я не смог найти эту переменную в Systemvariables или Uservariables. Поэтому я попытался создать новый SYSTEMVARIABLE с именем = VS140COMNTOOLS и значением = C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ BuildTools \ Common7 \ Tools . Именно по этому пути на моей машине находится VsDevCmd.bat , который, я думаю, отвечает за установку переменной среды во времяустановка Microsoft Visual Studio.

Это изменило мое сообщение об ошибке, но только сделало его хуже / дольше. Кроме того, когда я набираю python или pypy3 в командной строке, я получаю следующее:

! https://imgur.com/a/QvD3n4j

Что согласно этому посту В чем разница между этими двумя строками: MSC v.1900 64-битная (AMD64) и MSC v.1914 32-битная (Intel) покажи что яу меня установлен компилятор C ++?

Мои вопросы:

  1. Имеет ли значение переменная окружения ("VS140COMNTOOLS")?Я предполагаю, что это для VisualStudio14, но значение приводит к VisualStudio19.
  2. Правильно ли использовать SYSTEMVARIABLE, а не переменную USER, чтобы указать на компилятор?
  3. Если мне нужен Microsoft Visual C ++ 14.1, все ли более новые версии также возможны?
  4. Указывает ли моя переменная окружения на правильный каталог?Что должно быть в таком каталоге, чтобы PyPy распознавал компилятор C ++?
  5. Почему я должен набирать pypy3 -m pip install <Package>?вместо pypy3 pip install <Package>, что приводит только к «FilenotFoundError»?
  6. Как заставить PyPy распознать компилятор и правильно установить numpy или pandas?

EDIT 1

Использование командной строки "x86 Native Tools для VS 2019" и попытка pypy3 -m pip install numpy не сработали.Я также нашел этот вопрос как я могу установить numpy на pypy на моем 64-битном компьютере под управлением Windows 64 bit? и так как я не смог найти соответствующую переменную окружения: Environmental Variables Я установилон использовал set VS140COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build" и попробовал оба: pypy3 -m pip install numpy и pypy3 -m pip install numpy -v.К сожалению, это также не решило проблему, и сообщение об ошибке по-прежнему выглядит так: enter image description here и позже, говоря, что Microsoft Visual C ++ 14.1 не установлен.

Сообщение об ошибкеуказывает, что он не находит несколько библиотек в моей папке PyPy / libs.Кто-нибудь знает, что мне нужно установить, чтобы он обнаружил эти библиотеки?

@ mattip Скорость не имеет большого значения в моем случае, так как я фактически не использую numpy для расчетов.Однако я использую pandas для хранения данных, для которого сначала необходимо установить numpy.

Проще установить PyPy в виртуальной среде, или я столкнусь с теми же проблемами там?

1 Ответ

1 голос
/ 16 мая 2019

Приглашение, которое вы получаете при запуске PyPy, указывает, с каким компилятором он был собран, а не с каким компилятором найден.Даже если PyPy сможет найти компилятор, который ищет, локальная сборка NumPy в Windows приведет к более медленной версии NumPy.NumPy действительно нужен сервер линейной алгебры, такой как OpenBLAS или Intel MKL, и установить их сложно.Теперь ваши вопросы:

  1. Вы можете запустить командную строку Visual Studio для 32-битных компиляторов, а затем запустить PyPy в этом окне DOS, я почти уверен, что NumPy будет собираться (норезультат будет медленнее, чем двоичное колесо, предоставленное vnedor).

  2. Конечный результат точно такой же.SystemVariable установит это для всех пользователей, UserVariable только для вас.

  3. Да, возможно.У меня нет 2019, только 2017.

  4. PyPy использует сервисы, предоставляемые setuptools и distutils, так же, как и обычный CPython.Таким образом, ответы на него совпадают с ответами, которые вы найдете для CPython.

  5. -m означает «загрузить этот модуль», поэтому вы загружаете модуль pip и работает его код.Без -m вы запускаете файл с именем pip, который не существует на вашем пути

  6. Путь вперед - сделать PyPy гражданином первого классав мире питонов.Пожалуйста, призовите сами проекты (pandas, numpy, scipy ...) предоставить колеса для PyPy, а также попросите Анаконду предоставить вариант PyPy.

...