【问题标题】:cygwincompiler TypeError: '>=' not supported between instances of 'NoneType' and 'str'cygwincompiler TypeError:“NoneType”和“str”的实例之间不支持“>=”
【发布时间】:2018-02-13 10:31:03
【问题描述】:
File "C:\ProgramData\Anaconda3\lib\site-packages\numpy\distutils\mingw
  dry_run, force)
File "C:\ProgramData\Anaconda3\lib\distutils\cygwinccompiler.py", line
  if self.ld_version >= "2.10.90":
TypeError: '>=' not supported between instances of 'NoneType' and 'str'

在我的Python环境中长期面对这个错误,不知道是不是cygwin的原因。

【问题讨论】:

    标签: python cygwin statsmodels


    【解决方案1】:
    1. 您需要将以下 2 行添加到名为 distutils.cfg 的新文件到 python/Lib/distils python 安装。这将防止原始问题中看到的“vcvarsall.bat”错误或“Visual C++ 要求”错误或 NoneType 错误。 (假设“distutils.cfg”文件不存在)

      [build]
      compiler=mingw32.exe
      
      (Note: The ".exe" portion is very important here, and many other guidelines tend to leave this out!)
      
    2. 将补丁添加到 Python/Lib/disutils/cygwinccompiler.py。将 get_msvcr() 方法更改为我在this file 中看到的方法,由我自己组织以确保 python 选项卡安全,或者以其他方式应用特定 bug fix python page 的更改。 (请注意,如果您将官方页面的代码复制到您的 cygwinccompiler.py get_msvcr 方法中,即使您删除了不相关的加号并确保所有内容对齐,也会产生错误。您需要删除选项卡并替换它们具有相应数量的空格。)

    【讨论】:

    • 我试过这个,但它对我不起作用。显然我电脑的msc_ver 是1915,我收到错误ValueError: Unknown MS Compiler version 1915。我能做些什么来解决它?
    【解决方案2】:

    这可能是因为您没有将 mingw 目录添加到您的 Windows PATH 中。 cygwinccompiler.py 正在尝试将您的 ld 版本与特定版本进行比较,但已收到 None 作为 ld 版本。 查看After installing minGW, gcc command is not recognized 的答案,了解两个如何将 mingw 添加到您的 Windows PATH 中。 将其添加到路径后,打开一个新的 cmd 并尝试:

    gcc -dumpversion
    ld -v
    dllwrap -version
    

    如果命令被识别,你应该可以正常运行cygwinccompiler.py

    【讨论】:

      【解决方案3】:

      在导入块后修补cygwinccompiler.py,如下所示:

      path=r'C:\mingw\bin'
      if not path in os.environ["PATH"]: os.environ["PATH"] += os.pathsep + path
      

      【讨论】:

        猜你喜欢
        • 2018-01-10
        • 2018-11-22
        • 1970-01-01
        • 2022-08-02
        • 2021-08-19
        • 2021-11-21
        • 1970-01-01
        • 2020-05-05
        • 2021-03-18
        相关资源
        最近更新 更多