首页 > 解决方案 > 如何在将 .py 编译为 .pyd 时修复“找不到 -lvcruntime140.dll”?

问题描述

我正在尝试将我的 python 模块从转换.py.pyddll。

每次我尝试执行我的安装脚本时。

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
    Extension("core",  ["core.py"]),
]

setup(
    name = 'core',
    cmdclass = {'build_ext': build_ext},
    ext_modules = ext_modules
)

我收到此错误:

c:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: cannot find -lvcruntime140.dll
collect2.exe: error: ld returned 1 exit status
error: command 'C:\\MinGW\\bin\\gcc.exe' failed with exit status 1

标签: pythongcccython

解决方案


使用以下命令解决了我的问题:

  • 通过以下方式将我的脚本转换为 C 代码cython

cython -3 main.py

  • 直接使用gcc转换.c.pyddll:

gcc main.c -o main.pyd -shared -IC:\Python36\include -LC:\Python36\libs -lpython36


推荐阅读