使用 pip 在 windows 7、python 3.4.3 上安装 cython

Installing cython on windows 7, python 3.4.3 with pip

我尝试通过

在windows 7 64位(Python 3.4.3)上安装cython
pip install cython

并以错误消息结束

 error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).

我觉得有点奇怪,因为我安装了 visual studio community 2013。 当我问 windows vcvarsall.bat 在哪里时,它友好地回答我

C:\Users\me>where vcvarsall.bat
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat

所以它就在我的路上。我是否需要不同的 visual studio 版本以及不同版本的 vcvarsall.bat?

编辑 1 我下载了提供的 VS2010 ISO SonicARG。谢谢你。 现在 cython 承认编译器,但仍然无法安装。

pip install cython

  Running setup.py install for cython
    Complete output from command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\setup.py';exec(compile(getattr(t
okenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\me\AppData\Local\Temp\pip-lgya62cy-record\install-record.txt --single-version-external
ly-managed --compile:
    Unable to find pgen, not compiling formal grammar.
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.4
    copying cython.py -> build\lib.win-amd64-3.4
    creating build\lib.win-amd64-3.4\Cython
    copying Cython\CodeWriter.py -> build\lib.win-amd64-3.4\Cython
    [Many lines of copying and creating]
    copying Cython\Debugger\Tests\cfuncs.c -> build\lib.win-amd64-3.4\Cython\Debugger\Tests
    running build_ext
    cythoning C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\Cython\Plex\Scanners.py to C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\Cython\Plex\Scanners.c
    building 'Cython.Plex.Scanners' extension
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\setup.py", line 357, in <module>
        **setup_args
      File "C:\Python34\lib\distutils\core.py", line 148, in setup
        dist.run_commands()
      File "C:\Python34\lib\distutils\dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "C:\Python34\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Python34\lib\site-packages\setuptools\command\install.py", line 61, in run
        return orig.install.run(self)
      File "C:\Python34\lib\distutils\command\install.py", line 539, in run
        self.run_command('build')
      File "C:\Python34\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "C:\Python34\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Python34\lib\distutils\command\build.py", line 126, in run
        self.run_command(cmd_name)
      File "C:\Python34\lib\distutils\cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "C:\Python34\lib\distutils\dist.py", line 974, in run_command
        cmd_obj.run()
      File "C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\Cython\Distutils\build_ext.py", line 164, in run
        _build_ext.build_ext.run(self)
      File "C:\Python34\lib\distutils\command\build_ext.py", line 339, in run
        self.build_extensions()
      File "C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\setup.py", line 192, in build_extensions
        build_ext_orig.build_extensions(self)
      File "C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\Cython\Distutils\build_ext.py", line 172, in build_extensions
        self.build_extension(ext)
      File "C:\Python34\lib\distutils\command\build_ext.py", line 503, in build_extension
        depends=ext.depends)
      File "C:\Python34\lib\distutils\msvc9compiler.py", line 460, in compile
        self.initialize()
      File "C:\Python34\lib\distutils\msvc9compiler.py", line 371, in initialize
        vc_env = query_vcvarsall(VERSION, plat_spec)
      File "C:\Python34\lib\site-packages\setuptools\msvc9_support.py", line 52, in query_vcvarsall
        return unpatched['query_vcvarsall'](version, *args, **kwargs)
      File "C:\Python34\lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall
        raise ValueError(str(list(result.keys())))
    ValueError: ['path']

    ----------------------------------------
Command "C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython\setup.py';exec(compile(getattr(tokenize, 'open', open)(_
_file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\me\AppData\Local\Temp\pip-lgya62cy-record\install-record.txt --single-version-externally-managed --compile" fa
iled with error code 1 in C:\Users\me\AppData\Local\Temp\pip-build-12j3y7gp\cython

Python 3.4 是针对 Microsoft 的 Visual Studio 2010 构建的;为了构建原生模块你必须使用准确的版本。您可以只下载 Express Edition 来构建它们,不需要整个 IDE。您可以获取 VS2010 ISO from here,并安装 C++ 组件,然后重试。

未来注意事项:如果您计划将 Python 升级到 3.5(发布日期为 2015 年 9 月 13 日),Visual Studio 版本将为2015,所以如果你有保存问题,你可以准备好