gpt4 book ai didi

python - Cython 基本构建仍然失败

转载 作者:行者123 更新时间:2023-11-30 17:19:34 25 4
gpt4 key购买 nike

我使用的是 python 2.7.6,并且使用的是 Windows 7 x64 以下是我的 python 的入口点显示:

>python
Python 2.7.6 [MSC v.1800 32 bit (Intel)] on win32

所以我使用的是所有 32 位二进制文​​件。我正在尝试编译 2013 年 Sci Py 演讲中有关使用 Cython 的斐波那契演示/教程,显示 here 。您可以下载教程文件here (解压教程文件并进入 ~/demo/fib/ )。

我已经使用 pip install cython 安装了 Cython,这是成功的。我尝试使用

编译 python .pyx
>python setup.py build_ext --inplace --compilers=mingw32

running build_ext
Traceback (most recent call last):
File "setup.py", line 17, in <module>
ext_modules = exts,
File "~\Python\Lib\distutils\core.py", line 151, in setup
dist.run_commands()
File "~\Python\Lib\distutils\dist.py", line 953, in run_commands
self.run_command(cmd)
File "~\Python\Lib\distutils\dist.py", line 972, in run_command
cmd_obj.run()
File "~\Python\lib\site-packages\Cython\Distutils\build_ext.py", line 163,
in run
_build_ext.build_ext.run(self)
File "~\Python\Lib\distutils\command\build_ext.py", line 306, in run
force=self.force)
File "~\Python\Lib\distutils\ccompiler.py", line 1004, in new_compiler
return klass(None, dry_run, force)
File "~\Python\Lib\distutils\cygwinccompiler.py", line 309, in __init__
CygwinCCompiler.__init__ (self, verbose, dry_run, force)
File "~\Python\Lib\distutils\cygwinccompiler.py", line 152, in __init__
self.dll_libraries = get_msvcr()
File "~\Python\Lib\distutils\cygwinccompiler.py", line 82, in get_msvcr
raise ValueError("Unknown MS Compiler version %s " % msc_ver)
ValueError: Unknown MS Compiler version 1800

我检查并修改了 cygwinccompiler.py 并看到并进行了以下更改:

def get_msvcr():
"""Include the appropriate MSVC runtime library if Python was built
with MSVC 7.0 or later.
"""
msc_pos = sys.version.find('MSC v.')
if msc_pos != -1:
msc_ver = sys.version[msc_pos+6:msc_pos+10]
if msc_ver == '1300':
# MSVC 7.0
return ['msvcr70']
elif msc_ver == '1310':
# MSVC 7.1
return ['msvcr71']
elif msc_ver == '1400':
# VS2005 / MSVC 8.0
return ['msvcr80']
elif msc_ver == '1500':
# VS2008 / MSVC 9.0
return ['msvcr90']
elif msc_ver == '1800': # I added this!!!
# VS2013 / MSVC 12.0 # I added this!!!
return ['msvcr120'] # I added this!!!
else:
raise ValueError("Unknown MS Compiler version %s " % msc_ver)

因为显然 msc_ver == '1800' (编译我的 python 的 msvc 版本)是 2013 Visual Studio C 编译器,并被称为 msvcr120一些快速的谷歌搜索。所以我安装了:

enter image description here

但是现在,我收到以下 cython DLL 错误。

>python setup.py build_ext --compiler=mingw32
running build_ext
failed to import Cython: DLL load failed: A dynamic link library (DLL) initialization routine failed.
error: Cython does not appear to be installed

它在哪里寻找 DLL?它需要什么DLL?为什么在安装 5 个以上版本的 MSVC 可再发行软件包后找不到任何 DLL(从很久以前使用 python 的第一天起,我就一直在努力让 python 找到 msvc 编译器。真正的依赖 hell 。无论如何...)

我的 PYTHONHOME 环境变量已设置,但我没有将 PYTHONPATH 设置为任何内容。

有人知道如何解决这个问题吗?

做什么?

非常感谢。

最佳答案

所以,正如用户 @martineau 指出的那样,我的 python 安装似乎出了问题。 Python 2.7.9 是使用 msvc_ver = 1500 构建的或 Visual Studio 2008,所以为什么我要使用较旧版本的 Python (2.7.6),它使用更高版本的编译器尚不清楚。我尝试在另一台计算机上使用全新的 2.7.9 安装,并且能够成功编译,无需修改 cygwinccompiler.py .

关于python - Cython 基本构建仍然失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28872074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com