擅长:python、mysql、java
<p>来自<code>build_ext.py</code>的distutils源文件的注释:</p>
<blockquote>
<p># extensions in debug_mode are named 'module_d.pyd' under windows</p>
</blockquote>
<p>对于C扩展也是一样的,所以应该不会有任何问题。但既然有一个,也可以去掉<code>_d</code>后缀:</p>
<pre><code>import os.path
from setuptools.command.build_ext import build_ext as _build_ext
class build_ext(_build_ext):
def get_ext_filename(self, ext_name):
fn = _build_ext.get_ext_filename(self, ext_name)
fn = os.path.splitext(fn)
if fn[0].endswith('_d'):
fn[0] = fn[0][:-2]
return fn[0] + fn[1]
</code></pre>
<p>或者暂时禁用调试:</p>
^{pr2}$
<p>别忘了在<code>setup</code>内设置<code>cmdclass</code>:</p>
<pre><code>setup(
...
cmdclass={'build_ext': build_ext},
...
)
</code></pre>
<p>我自己并不是在使用Windows,所以这只是一个猜测,但也许你在混合Python的调试和发布部分。在</p>