警告LNK4197:多次指定导出'PyInit_python_module_name'; 使用第一个规范

dai*_*yue 5 python cython visual-c++ python-3.x

我创建了一些Cython文件,然后Python使用,将它们导入文件中,

import pyximport
pyximport.install()

import Cython_Mod1
import Cython_Mod2
Run Code Online (Sandbox Code Playgroud)

当我运行该py文件时,Ccompiler(VC++14)生成以下错误

Cython_Mod1.obj : warning LNK4197: export 'PyInit_Cython_Mod1' specified multiple times; using first specification
Run Code Online (Sandbox Code Playgroud)

对于每个Cython模块.

如何解决这个问题,它是否会影响性能,或者在执行时可能会出错.

Jim*_*ard 7

LNK4197是一个警告,因此它不应该影响你的.c文件的编译,Cython可能只是生成多次导出该函数的代码(出于好的理由,我假设).

由于PyInit_<modname>负责初始化模块; 如果您的模块初始化并正确导入,则没有问题.它不会影响性能和/或导致错误执行.