Python27编译成pyd, 遇到error: Unable to find vcvarsall.bat

我目前遇到2种情况

前提安装了 Python27, Cython
setup.py

from setuptools import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize('hanalyse.py'),
)

目录结构
Python27编译成pyd, 遇到error: Unable to find vcvarsall.bat_第1张图片
运行 python setup.py build_ext --inplace
Python27编译成pyd, 遇到error: Unable to find vcvarsall.bat_第2张图片

第一种

正常的没有安装 windows的C ++ 编译器VCForPython27.msii, 直接下载安装就可以了
官方下载地址: https://www.microsoft.com/en-us/download/details.aspx?id=44266

第二种

安装了VCForPython27.msi, 但是还是显示找不到 error: Unable to find vcvarsall.bat
这时需要指定编译器, 要与之链接的库或其他链接器选项,则需要Extension手动创建实例, 正常安装VCForPython27.msi后会有C:\Users\用户名\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC这个目录, 如果发现没有就在C:\Users\用户名\AppData\Local\Programs\Links\Microsoft\Visual C++ for Python\9.0\VC
这时就要改变一下setup.py

from distutils.core import setup
from Cython.Build import cythonize
from distutils.extension import Extension

extensions = []
extensions.append(Extension('hanalyse', ['hanalyse.py']))
extensions.append(Extension('mxy.hello', ['mxy/hello.py']))

setup(
    ext_modules=cythonize(extensions, compiler_directives={
     'language_level': 2}),
)

编译后,如果导入pyd遇到 ImportError: DLL load failed,请查看 https://blog.csdn.net/weixin_42825585/article/details/106851576

你可能感兴趣的:(python)