python - 在 Windows 10 上为 PyPy3 安装 numpy 时出现问题

标签 python visual-studio numpy pip pypy

我在尝试在我的 Windows 10 机器上为 pypy3 安装 numpy 时遇到问题。

因为我无法判断这个问题是源于我的 pypy3 安装还是源于我在这里描述的到目前为止我所遵循的所有步骤的其他原因:

如官方所示download page我有:

  • 下载并安装“Visual C++ Redistributable Package”vcredist.x86.exe
  • 下载并安装了 Pypy3“Windows 二进制文件(32 位)”文件 pypy3.6-v7.3.1-win32.zip

然后在将 pypy3 手动添加到我机器的 PATH 之后,我有:

  • 使用 pypy3 -m ensurepip 命令从 shell 安装 pip

尝试安装 numpy 时出现问题。官方documentation说可以通过执行 pypy -m pip install numpy (在我的例子中是 pypy3 )来安装它,但是这样做会引发以下错误:

Collecting numpy
  Using cached numpy-1.18.4.zip (5.4 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... error
    ERROR: Command errored out with exit status 1:
     command: 'C:\pypy3\pypy3.exe' 'C:\pypy3\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\solub\AppData\Local\Temp\tmplva52crq'
         cwd: C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy
    Complete output (231 lines):
    Processing numpy/random\_bounded_integers.pxd.in
    Processing numpy/random\mtrand.pyx
    Processing numpy/random\_bit_generator.pyx
    Processing numpy/random\_bounded_integers.pyx.in
    Processing numpy/random\_common.pyx
    Processing numpy/random\_generator.pyx
    Processing numpy/random\_mt19937.pyx
    Processing numpy/random\_pcg64.pyx
    Processing numpy/random\_philox.pyx
    Processing numpy/random\_sfc64.pyx
    Cythonizing sources
    blas_opt_info:
    blas_mkl_info:
    customize MSVCCompiler
      libraries mkl_rt not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    blis_info:
      libraries blis not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    openblas_info:
      libraries openblas not found in ['C:\\', 'C:\\pypy3\\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
      libraries tatlas not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    atlas_3_10_blas_info:
      libraries satlas not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    atlas_blas_threads_info:
    Setting PTATLAS=ATLAS
      libraries ptf77blas,ptcblas,atlas not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    atlas_blas_info:
      libraries f77blas,cblas,atlas not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    accelerate_info:
      NOT AVAILABLE

    blas_info:
      libraries blas not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    blas_src_info:
      NOT AVAILABLE

      NOT AVAILABLE

    non-existing path in 'numpy\\distutils': 'site.cfg'
    lapack_opt_info:
    lapack_mkl_info:
      libraries mkl_rt not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    openblas_lapack_info:
      libraries openblas not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    openblas_clapack_info:
      libraries openblas,lapack not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    flame_info:
      libraries flame not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    atlas_3_10_threads_info:
    Setting PTATLAS=ATLAS
      libraries lapack_atlas not found in C:\
      libraries tatlas,tatlas not found in C:\
      libraries lapack_atlas not found in C:\pypy3\libs
      libraries tatlas,tatlas not found in C:\pypy3\libs
    <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
      NOT AVAILABLE

    atlas_3_10_info:
      libraries lapack_atlas not found in C:\
      libraries satlas,satlas not found in C:\
      libraries lapack_atlas not found in C:\pypy3\libs
      libraries satlas,satlas not found in C:\pypy3\libs
    <class 'numpy.distutils.system_info.atlas_3_10_info'>
      NOT AVAILABLE

    atlas_threads_info:
    Setting PTATLAS=ATLAS
      libraries lapack_atlas not found in C:\
      libraries ptf77blas,ptcblas,atlas not found in C:\
      libraries lapack_atlas not found in C:\pypy3\libs
      libraries ptf77blas,ptcblas,atlas not found in C:\pypy3\libs
    <class 'numpy.distutils.system_info.atlas_threads_info'>
      NOT AVAILABLE

    atlas_info:
      libraries lapack_atlas not found in C:\
      libraries f77blas,cblas,atlas not found in C:\
      libraries lapack_atlas not found in C:\pypy3\libs
      libraries f77blas,cblas,atlas not found in C:\pypy3\libs
    <class 'numpy.distutils.system_info.atlas_info'>
      NOT AVAILABLE

    lapack_info:
      libraries lapack not found in ['C:\\', 'C:\\pypy3\\libs']
      NOT AVAILABLE

    lapack_src_info:
      NOT AVAILABLE

      NOT AVAILABLE

    running dist_info
    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
    Running from numpy source directory.
    setup.py:461: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
      run_build = parse_setuppy_commands()
    C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\system_info.py:1896: 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.
      if self._calc_info(blas):
    C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\system_info.py:1896: 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.
      if self._calc_info(blas):
    C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\system_info.py:1896: 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.
      if self._calc_info(blas):
    C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\system_info.py:1730: 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.
      return getattr(self, '_calc_info_{}'.format(name))()
    C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\system_info.py:1730: 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.
      return getattr(self, '_calc_info_{}'.format(name))()
    C:\pypy3\lib-python\3\distutils\dist.py:261: UserWarning: Unknown distribution option: 'define_macros'
      warnings.warn(msg)
    Traceback (most recent call last):
      File "C:\pypy3\site-packages\pip\_vendor\pep517\_in_process.py", line 280, in <module>
        main()
      File "C:\pypy3\site-packages\pip\_vendor\pep517\_in_process.py", line 263, in main
        json_out['return_val'] = hook(**hook_input['kwargs'])
      File "C:\pypy3\site-packages\pip\_vendor\pep517\_in_process.py", line 133, in prepare_metadata_for_build_wheel
        return hook(metadata_directory, config_settings)
      File "C:\Users\solub\AppData\Local\Temp\pip-build-env-0puh3yb5\overlay\site-packages\setuptools\build_meta.py", line 158, in prepare_metadata_for_build_wheel
        self.run_setup()
      File "C:\Users\solub\AppData\Local\Temp\pip-build-env-0puh3yb5\overlay\site-packages\setuptools\build_meta.py", line 250, in run_setup
        self).run_setup(setup_script=setup_script)
      File "C:\Users\solub\AppData\Local\Temp\pip-build-env-0puh3yb5\overlay\site-packages\setuptools\build_meta.py", line 143, in run_setup
        exec(compile(code, __file__, 'exec'), locals())
      File "setup.py", line 488, in <module>
        setup_package()
      File "setup.py", line 480, in setup_package
        setup(**metadata)
      File "C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\core.py", line 171, in setup
        return old_setup(**new_attr)
      File "C:\Users\solub\AppData\Local\Temp\pip-build-env-0puh3yb5\overlay\site-packages\setuptools\__init__.py", line 144, in setup
        return distutils.core.setup(**attrs)
      File "C:\pypy3\lib-python\3\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "C:\pypy3\lib-python\3\distutils\dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "C:\pypy3\lib-python\3\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Users\solub\AppData\Local\Temp\pip-build-env-0puh3yb5\overlay\site-packages\setuptools\command\dist_info.py", line 31, in run
        egg_info.run()
      File "C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\command\egg_info.py", line 26, in run
        self.run_command("build_src")
      File "C:\pypy3\lib-python\3\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "C:\pypy3\lib-python\3\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\command\build_src.py", line 146, in run
        self.build_sources()
      File "C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\command\build_src.py", line 157, in build_sources
        self.build_library_sources(*libname_info)
      File "C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\command\build_src.py", line 290, in build_library_sources
        sources = self.generate_sources(sources, (lib_name, build_info))
      File "C:\Users\solub\AppData\Local\Temp\pip-install-fe1jhyy5\numpy\numpy\distutils\command\build_src.py", line 380, in generate_sources
        source = func(extension, build_dir)
      File "numpy\core\setup.py", line 661, in get_mathlib_info
        raise RuntimeError("Broken toolchain: cannot link a simple C program")
    RuntimeError: Broken toolchain: cannot link a simple C program
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\pypy3\pypy3.exe' 'C:\pypy3\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\solub\AppData\Local\Temp\tmplva52crq' Check the logs for full command output.

正如同一文档中所建议的,我也尝试使用实验性的 PyPy binary wheels使用命令:

pypy3 -m pip install --extra-index-url https://antocuni.github.io/pypy-wheels/manylinux2010 numpy

但出现完全相同的错误消息。我应该注意到 this 中推荐的类似解决方法相关线程也失败了。

附加信息:

  • 我安装了“Visual Studio Build Tools 2019”(MSVC v142 - VS 2019 C++ x64/x86 Build Tools (v14.25))
  • 我使用的是 pip 20.1 版和 setuptools 46.4.0 版
  • 我已将英语作为我系统的主要语言(下面的评论中提到了可能的非 ascii 冲突)
  • 我尝试过其他版本(pypy2.7 v7.3.1 和 pypy3.6 v7.3.0)无济于事(同样的错误信息)

如有任何帮助,我们将不胜感激。

最佳答案

感谢您在 Windows 上试用 PyPy 并报告问题。我们并没有真正的大型 Windows PyPy 社区,因此反馈很好。这里有两件事在起作用:

  • RPython 错误(将其视为 CPython 中的 C 级段错误),这可能是由非 ascii 路径名引起的。我认为我们在 7.3.1 版本后修复了这个问题,但最好尝试弄清楚到底发生了什么,它是/是 PyPy 中的一个深层错误。
  • 构建失败,神秘的“损坏的工具链:无法链接简单的 C 程序”。这与最新版本中从 MSVC9 (Visual Studio 2008) 到 MSVC14 (Visual Studio 2017、2019) 的过渡有关。它应该固定在 this commit 中到 PyPy,它应该在下一个夜间构建中着陆

关于python - 在 Windows 10 上为 PyPy3 安装 numpy 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61841401/

相关文章:

c# - Azure 配置的 APPINSIGHTS_INSTRUMENTATIONKEY 和 ApplicationInsights :InstrumentationKey? 有什么区别

python - 遍历 numpy 数组的最后一个轴

python - 如何在python中下载csv文件和zip文件?

python - 为什么我的表格总是未绑定(bind)?

javascript - 在 JavaScript 中加载表单数据并在客户端运行某些内容

c++ - Visual Studio 2012 上的 WildMagic 5.9

python - Numpy CAPI PyArray_新 Visual Studio 警告 C4055

python - 如何将 pyplot 函数附加到图形实例?

python - 使用特定列绘制二维 NumPy 数组

python - 使用 Python 3 导入 f2py 模块时 undefined symbol