Проблемы с использованием pip для установки пакетов на Pypy - PullRequest
0 голосов
/ 23 октября 2019

Я хочу использовать Pypy для более быстрого запуска набора преобразований данных, но мне нужно установить numpy, чтобы скрипт работал без изменений (очевидно, я мог изменить скрипт, но это не главное). Я пытался использовать pip, как сказали мне документы, но это не сработало. Это дает мне ошибку из-за отсутствия Visual Studio 14.1, что у меня есть теоретически (я установил столько распространяемых файлов, сколько вы можете себе представить, включая версию 2017 года, которая, насколько я могу судить, такая же, как 14.1).

Мне также известна возможность загрузки модуля и выполнения установки или клонирования его из github, но получить pip для работы было бы неплохо, так как я заинтересован в том, чтобы загрузить довольно много из них в ближайшем будущем.

Тем не менее, я очень тупой, когда дело доходит до Windows, поэтому я буду рад, если вы поймете, почему он не работает.

Это ошибка и журналЯ получаю из Windows Shell:

PS C:\WINDOWS\system32>pypy3 -m ensurepip
PS C:\WINDOWS\system32>pypy3 -m pip install numpy
Collecting numpy
  Using cached https://files.pythonhosted.org/packages/b6/d6/be8f975f5322336f62371c9abeb936d592c98c047ad63035f1b38ae08efe/numpy-1.17.3.zip
Installing collected packages: numpy
  Running setup.py install for numpy ... error
    Complete output from command "C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\pypy3.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\alefe\\AppData\\Local\\Temp\\pip-install-uvuig992\\numpy\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\alefe\AppData\Local\Temp\pip-record-xm3lustt\install-record.txt --single-version-externally-managed --compile:
    Running from numpy source directory.

    Note: if you need reliable uninstall behavior, then install
    with pip instead of using `setup.py install`:

      - `pip install .`       (from a git repo or downloaded source
                               release)
      - `pip install numpy`   (last NumPy release on PyPi)


    blas_opt_info:
    blas_mkl_info:
    customize MSVCCompiler
      libraries mkl_rt not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    blis_info:
    customize MSVCCompiler
      libraries blis not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    openblas_info:
    customize MSVCCompiler
    customize MSVCCompiler
      libraries openblas not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
    get_default_fcompiler: matching types: '['gnu', 'intelv', 'absoft', 'compaqv', 'intelev', 'gnu95', 'g95', 'intelvem', 'intelem', 'flang']'
    customize GnuFCompiler
    Could not locate executable g77
    Could not locate executable f77
    customize IntelVisualFCompiler
    Could not locate executable ifort
    Could not locate executable ifl
    customize AbsoftFCompiler
    Could not locate executable f90
    customize CompaqVisualFCompiler
    Could not locate executable DF
    customize IntelItaniumVisualFCompiler
    Could not locate executable efl
    customize Gnu95FCompiler
    Could not locate executable gfortran
    Could not locate executable f95
    customize G95FCompiler
    Could not locate executable g95
    customize IntelEM64VisualFCompiler
    customize IntelEM64TFCompiler
    Could not locate executable efort
    Could not locate executable efc
    customize PGroupFlangCompiler
    Could not locate executable flang
    don't know how to compile Fortran code on platform 'nt'
      NOT AVAILABLE

    atlas_3_10_blas_threads_info:
    Setting PTATLAS=ATLAS
    customize MSVCCompiler
      libraries tatlas not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    atlas_3_10_blas_info:
    customize MSVCCompiler
      libraries satlas not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    atlas_blas_threads_info:
    Setting PTATLAS=ATLAS
    customize MSVCCompiler
      libraries ptf77blas,ptcblas,atlas not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    atlas_blas_info:
    customize MSVCCompiler
      libraries f77blas,cblas,atlas not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    accelerate_info:
      NOT AVAILABLE

    C:\Users\alefe\AppData\Local\Temp\pip-install-uvuig992\numpy\numpy\distutils\system_info.py:690: UserWarning:
        Optimized (vendor) Blas libraries are not found.
        Falls back to netlib Blas library which has worse performance.
        A better performance should be easily gained by switching
        Blas library.
      self.calc_info()
    blas_info:
    customize MSVCCompiler
      libraries blas not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    C:\Users\alefe\AppData\Local\Temp\pip-install-uvuig992\numpy\numpy\distutils\system_info.py:690: UserWarning:
        Blas (http://www.netlib.org/blas/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [blas]) or by setting
        the BLAS environment variable.
      self.calc_info()
    blas_src_info:
      NOT AVAILABLE

    C:\Users\alefe\AppData\Local\Temp\pip-install-uvuig992\numpy\numpy\distutils\system_info.py:690: UserWarning:
        Blas (http://www.netlib.org/blas/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [blas_src]) or by setting
        the BLAS_SRC environment variable.
      self.calc_info()
      NOT AVAILABLE

    'svnversion' nÆo \u201a reconhecido como um comando interno
    ou externo, um programa oper vel ou um arquivo em lotes.
    non-existing path in 'numpy\\distutils': 'site.cfg'
    lapack_opt_info:
    lapack_mkl_info:
    customize MSVCCompiler
      libraries mkl_rt not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    openblas_lapack_info:
    customize MSVCCompiler
    customize MSVCCompiler
      libraries openblas not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    openblas_clapack_info:
    customize MSVCCompiler
    customize MSVCCompiler
      libraries openblas,lapack not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    flame_info:
    customize MSVCCompiler
      libraries flame not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    atlas_3_10_threads_info:
    Setting PTATLAS=ATLAS
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\
    customize MSVCCompiler
      libraries tatlas,tatlas not found in C:\
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    customize MSVCCompiler
      libraries tatlas,tatlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
      NOT AVAILABLE

    atlas_3_10_info:
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\
    customize MSVCCompiler
      libraries satlas,satlas not found in C:\
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    customize MSVCCompiler
      libraries satlas,satlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    <class 'numpy.distutils.system_info.atlas_3_10_info'>
      NOT AVAILABLE

    atlas_threads_info:
    Setting PTATLAS=ATLAS
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\
    customize MSVCCompiler
      libraries ptf77blas,ptcblas,atlas not found in C:\
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    customize MSVCCompiler
      libraries ptf77blas,ptcblas,atlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    <class 'numpy.distutils.system_info.atlas_threads_info'>
      NOT AVAILABLE

    atlas_info:
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\
    customize MSVCCompiler
      libraries f77blas,cblas,atlas not found in C:\
    customize MSVCCompiler
      libraries lapack_atlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    customize MSVCCompiler
      libraries f77blas,cblas,atlas not found in C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\libs
    <class 'numpy.distutils.system_info.atlas_info'>
      NOT AVAILABLE

    lapack_info:
    customize MSVCCompiler
      libraries lapack not found in ['C:\\', 'C:\\Program Files (x86)\\Pypy\\pypy3.6-v7.2.0-win32\\libs']
      NOT AVAILABLE

    C:\Users\alefe\AppData\Local\Temp\pip-install-uvuig992\numpy\numpy\distutils\system_info.py:1712: UserWarning:
        Lapack (http://www.netlib.org/lapack/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [lapack]) or by setting
        the LAPACK environment variable.
      if getattr(self, '_calc_info_{}'.format(lapack))():
    lapack_src_info:
      NOT AVAILABLE

    C:\Users\alefe\AppData\Local\Temp\pip-install-uvuig992\numpy\numpy\distutils\system_info.py:1712: UserWarning:
        Lapack (http://www.netlib.org/lapack/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [lapack_src]) or by setting
        the LAPACK_SRC environment variable.
      if getattr(self, '_calc_info_{}'.format(lapack))():
      NOT AVAILABLE

    C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\lib-python\3\distutils\dist.py:261: UserWarning: Unknown distribution option: 'define_macros'
      warnings.warn(msg)
    running install
    running build
    running config_cc
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options
    running config_fc
    unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
    running build_src
    build_src
    building py_modules sources
    creating build
    creating build\src.win32-3.6
    creating build\src.win32-3.6\numpy
    creating build\src.win32-3.6\numpy\distutils
    building library "npymath" sources
    error: Microsoft Visual C++ 14.1 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/

    ----------------------------------------
Command ""C:\Program Files (x86)\Pypy\pypy3.6-v7.2.0-win32\pypy3.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\alefe\\AppData\\Local\\Temp\\pip-install-uvuig992\\numpy\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\alefe\AppData\Local\Temp\pip-record-xm3lustt\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\alefe\AppData\Local\Temp\pip-install-uvuig992\numpy\

Обновление: Мне удалось установить sympy с помощью pip без проблем. Я также мог бы установить NumPy, используя метод, описанный Mattip. Тем не менее, большинство пакетов продолжают выдавать мне ошибку Microsoft Visual или аналогичную.

1 Ответ

1 голос
/ 23 октября 2019

pip может устанавливать либо двоичный скомпилированный пакет, либо может загружать и компилировать исходный код пакета. Но он не может компилироваться из исходного кода без компилятора. Либо

  • установите компилятор и научитесь собирать модули c-extension из исходного кода (не рекомендуется)

или

  • всегда используйте pip install --only-binary :all: <package> чтобы заставить pip потерпеть неудачу, если нет двоичного файла

Вы можете найти двоичные колеса для окон в https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy,, вам нужны те, которые имеют pp372 в имени (pp для PyPY,3 для python 3, 72 для pypy 7.2.x)

...