全部在标题中,有人可以逐步安装cython并在Windows 10的Anaconda 64位上运行它吗? 我搜索了4个小时,并且有很多教程...对于我在Windows 10上无法获得或无法完成的事情。 我尝试遵循所有这些方法,但现在却徒劳无功: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Installing_Cython_On_Anaconda_On_Windows?lang=en
https://github.com/cython/cython/wiki/CythonExtensionsOnWindows
Conda安装已完成,但问题是将编译器链接到python,使用Windows SDK的所有方法(尤其是SDK命令提示符)已过时,此提示符在Visual Studio 2015上不存在,并且setenv函数不存在已经存在,或者无法执行'setenv \ x64 \ release',并且如果没有此步骤,代码将无法正常工作。
使用MinGW的其他方法返回错误:
C:\MinGW\bin\gcc.exe -shared -s build\temp.win-amd64-3.6\Release\hello.o build\temp.win-amd64-3.6\Release\hello.cp36-win_amd64.def -LC:\Users\Utilisateur\Anaconda3\libs -LC:\Users\Utilisateur\Anaconda3\PCbuild\amd64 -lpython36 -lmsvcr140 -o C:\Users\Utilisateur\Documents\hello.cp36-win_amd64.pyd
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lmsvcr140
collect2.exe: erreur : ld a retourné 1 code d'état d'exécution
error: command 'C:\\MinGW\\bin\\gcc.exe' failed with exit status 1
所以我不知道下一步该怎么做。
请帮助。
一个绝望的学生
答案 0 :(得分:3)
好吧,我在Windows 10上使用蟒蛇3.6.5和MSC v.1900 64位解决了Anaconda问题(通过运行给出的信息:
import sys
sys.version
所以这是方法:
1:通过在Anaconda提示符下运行conda install -c anaconda cython
安装cython
2:进入C:\Users\Utilisateur\Anaconda3\Lib\distutils
或您的distutils库所在的任何地方,创建distutils.cfg文件(通过使用记事本)并放入
[build]
compiler=mingw32
其中
3:在https://sourceforge.net/projects/mingw-w64/files/上获取最新版本的Mingw-w64(不仅仅是Mingw仅支持32位)并安装
4:将C:\Program Files (x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin
添加到您的路径中,这是有关如何在Windows 10上执行此操作的链接:https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/
5:通过运行conda install -c anaconda libpython
和conda install -c msys2 m2w64-toolchain
在您的Anaconda环境中安装libpython和m2w64-toolchain
它来自这些网页https://python-at-risoe.pages.windenergy.dtu.dk/compiling-on-windows/common_errors.html,应更正相应的错误
6:尝试在此页面http://docs.cython.org/en/latest/src/quickstart/build.html上进行的第一项或第二项测试都对我有利,
希望这会有所帮助!
答案 1 :(得分:0)
确定使用MinGW-w64可以吗?他们在Cython Wiki中说,不建议这样做:
**请勿使用MinGW-w64。您会注意到,Python的AMD64版本省略了Python的MinGW导入库(例如libpython27.a)。这是故意的。不要尝试使用dlltool制作一个。目前还没有正式的MinGW-w64版本,尽管您可以从例如Windows Server 2003中获得64位版本,但它仍处于“测试版”并被认为是不稳定的。 TDM-GCC。 mingw运行时与MSVC运行时冲突还存在一些问题。这可能发生在您意想不到的地方,例如在g ++或gfortran的运行时库中。为了安全起见,暂时不要使用MinGW-w64。
**具有Linux或Apple MacOSX经验的人可能会选择GCC(MinGW)作为Windows上的C / C ++编译器。请注意,GCC不是Windows上的平台C编译器。要与Windows上的大多数库和应用程序二进制兼容,请使用Microsoft的编译器。这与选择GCC作为Linux上的首选编译器没有什么不同。 Microsoft的Windows C / C ++平台编译器是免费的。
**对于C ++,请注意GCC(Mingw)和MSVC使用不同的C ++运行时。如果在扩展中使用C ++,则C ++运行时还必须与Python的C运行时兼容。因此,即使在32位x86上,也始终使用Microsoft的C ++编译器。这对于像Windows这样普遍使用C ++的平台(参见COM和ActiveX)非常重要。如果将GCC用作C ++编译器,则扩展名将与其他C ++库或COM二进制兼容,也不与Python的C运行时兼容,并且GCC和MSVC之间的异常处理差异可能会导致应用程序崩溃。
答案 2 :(得分:0)
虽然不是Windows 10的答案,但Windows 7是。我想告诉我我是怎么做到的。
%load_ext Cython
%%cython
cdef int a = 0
for i in range(10):
a += i
print(a)
现在这会引发错误:Unable to find vcvarsall.bat
我联合国已选择:
我选择了:
安装此程序并再次运行以上示例后,我遇到了链接器错误:LINK : fatal error LNK1158
3)在目录的某些子目录中
C:\Program files (x86)\Windows Kits
我找到了以下文件:rc.exe
和rcdll.dll
我将它们复制到MSVC的bin目录中:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
这使链接器错误消失,cython示例起作用! 我还没有尝试过其他任何方法,但是我确实希望这是需要做的所有事情。 希望这对某人有帮助。