zoukankan      html  css  js  c++  java
  • Python Extension 编译问题

    Python 的一大好处是调用C扩展程序相当方便,但是 Windows 下的话,编译器版本是一个大问题。以Python27为例,官方版本时采用VC2008编译的。在setup.py中添加Extension 语句,默认搜索的的是 VS90COMNTOOLS。如果没有安装对于的版本就是大问题了。

    如何 work around 呢?目前采用如下代码来绕过编译器版本问题。

    import os
    import platform as plat
    from sys import platform
    
    if platform == 'win32' or platform == "windows":
        extraLinkArgs = ['/MANIFEST']
        # Handle the very frequent case when user need to use Visual C++ 2010
        # with Python that wants to use Visual C++ 2008.
        if plat.python_compiler().startswith('MSC v.1500'):
            if (not ('VS90COMNTOOLS' in os.environ)):
                if 'VS100COMNTOOLS' in os.environ:
                    os.environ['VS90COMNTOOLS'] = os.environ['VS100COMNTOOLS']
                elif ('VS110COMNTOOLS' in os.environ):
                  os.environ['VS90COMNTOOLS'] = os.environ['VS110COMNTOOLS']
    elif platform == 'linux2':
        pass
    else:
        raise Exception("Platform '" + platform + "' isn't supported")
    

     这里主要是搜索其他版本的VC编译器,替换了一下环境变量。至于 extraLinkArgs 则是为了添加到编译链接选项里,这样VC2010之后的版本就不至于找不到manifest文件而导致编译失败。

  • 相关阅读:
    UITableView全面解析
    UITableView传值(自己使用)(属性,代理传值)
    页面之间传值(单例传值)(自己使用)
    带导航栏的最简单多视图
    UIscrollView和UIPageControl的循环滚动
    UIPickerView简单应用
    自定义进度条(菜鸟版)
    UISegmentedControl(人物简介)
    UI控件闪灯
    关于NSCELL
  • 原文地址:https://www.cnblogs.com/huys03/p/3316290.html
Copyright © 2011-2022 走看看