gpt4 book ai didi

python - 即使在编辑 PATH、在 distutils 中创建文件、删除所有 -mno-cygwin 实例后,也无法让 Cython 找到 MinGW gcc 编译器

转载 作者:可可西里 更新时间:2023-11-01 14:36:13 25 4
gpt4 key购买 nike

我试图让 cython 意识到我在 MinGW 32 位中有一个 c 编译器,我已经尝试了我在网上找到的所有内容,但它仍然无法正常工作。我正在运行 Windows 7 Professional 64 位。这是我尝试过的:

(1) 我有 Python 2.7,我刚刚安装了带有选项 gcc 和 g++ 以及一些其他选项的 MinGW

(2) 我编辑了 PATH 环境变量,使其包含

C:\MinGW\bin;C:\MinGW\MSYS\1.0\local\bin;C:\MinGW\MSYS\1.0\bin

(3) 我通过创建一个名为

的文件告诉 Python 使用 MinGW 作为默认编译器

C:\Python27\Lib\distutils\distutils.cfg,包含

[build]
compiler = mingw32

(顺便说一句,我有 MinGW32)

(4) 我从文件 C:\Python27\Lib\distutils\cygwincompiler.py 中删除了所有 -mno-cygwin 实例

(5) 我有一个名为 setup.py 的文件和一个用 python 编写的名为 tryingcython.pyx 的模块。我的 setup.py 说 从 distutils.core 导入设置 从 distutils.extension 导入扩展 从 Cython.Distutils 导入 build_ext

setup(
cmdclass = {'build_ext':build_ext},
ext_modules=[Extension("tryingcython",["tryingcython.pyx"])]
)

然后我打开命令提示符并进入包含 setup.py 和 trycython.pyx 的目录,然后我输入 python setup.py build_ext --inplace --compiler=mingw32

然后它告诉我:

running build_ext
skipping 'tryingcython.c' Cython extension (up-to-date)
building 'tryingcython.c' extension
gcc -mdll -O -Wall -IC:\Python27\include -IC:\Python27\PC -c tryingcython.c -o build\
temp.win32-2.7\Release\tryingcython.o
error: command 'gcc' failed: No such file or directory

所以我猜 Cython 不能告诉我我有 gcc 并且它找不到它或什么,即使我已经尝试了我可以在网上找到的每一条建议以让它意识到我有 MinGW 哪个包含 gcc。非常感谢任何有关如何让 cython 实际工作的帮助/其他想法。

最佳答案

您使用的操作系统和版本与我完全相同。

尝试使用以下方法调用 gcc:

SET input=intput.c
SET output=output.pyd
gcc -shared -IC:\Python27\include -LC:\Python27\libs -O2 -o %output% %input% -lpython27

通常我将这个调用放在 cythongcc.bat 文件中,该文件位于 PATH 环境变量识别为的目录中:

gcc -shared  -IC:\Python27\include -LC:\Python27\libs -O3 -mtune=native -o %1.pyd %2.c -lpython27

这样我就可以从我的 cython .pyx 文件所在的位置执行以下操作:

cython input.pyx
cythongcc input input

让编译后的 .pyd 正常工作!

关于python - 即使在编辑 PATH、在 distutils 中创建文件、删除所有 -mno-cygwin 实例后,也无法让 Cython 找到 MinGW gcc 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17814340/

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