【问题标题】:Python - Can't Install Packages: TypeError: unorderable types: NoneType() >= str()Python - 无法安装软件包:TypeError:不可排序的类型:NoneType() >= str()
【发布时间】:2014-07-10 17:58:23
【问题描述】:

系统:Win7 64、Python 3.4、Pycharm 3.0.2、MinGW

每当我尝试在 Pycharm 中或通过命令行安装包时,我都会得到以下信息:

running install
running build
running build_py
running build_ext
Traceback (most recent call last):
  File "C:\Users\MyAccount\Downloads\scandir-master\scandir-master\setup.py", line 48, in <module> 'Programming Language :: Python :: Implementation :: CPython',
  File "C:\Python34\lib\distutils\core.py", line 148, in setup dist.run_commands()
  File "C:\Python34\lib\distutils\dist.py", line 955, in run_commands self.run_command(cmd)
  File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run()
  File "C:\Python34\lib\distutils\command\install.py", line 554, in run self.run_command('build')
  File "C:\Python34\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command)
  File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run()
  File "C:\Python34\lib\distutils\command\build.py", line 126, in run self.run_command(cmd_name)
  File "C:\Python34\lib\distutils\cmd.py", line 313, in run_command self.distribution.run_command(command)
  File "C:\Python34\lib\distutils\dist.py", line 974, in run_command cmd_obj.run()
  File "C:\Python34\lib\distutils\command\build_ext.py", line 317, in run force=self.force)
  File "C:\Python34\lib\distutils\ccompiler.py", line 1031, in new_compiler return klass(None, dry_run, force)
  File "C:\Python34\lib\distutils\cygwinccompiler.py", line 282, in __init__ CygwinCCompiler.__init__ (self, verbose, dry_run, force)
  File "C:\Python34\lib\distutils\cygwinccompiler.py", line 126, in __init__ if self.ld_version >= "2.10.90":
TypeError: unorderable types: NoneType() >= str()

今天早些时候,我收到“无法找到 vcvarsall.bat”错误,但使用 this thread 解决了这个问题。

我相信这个问题的根源在于我几周前卸载了 Visual Studio Express,因为我没有使用它。有没有办法在不重新安装 VSE 的情况下解决此错误?

谢谢!

【问题讨论】:

    标签: python pycharm python-3.4


    【解决方案1】:

    我通过conda install mingw在我的虚拟环境中解决了这个问题,然后放置

    [build]
    compiler=msvc
    

    在 Lib\distutils\distutils.cfg 中

    【讨论】:

      【解决方案2】:

      有人建议我尝试用 mingw 编译一个 helloworld.cpp。失败了!

      我使用的说明说我只需要安装 mingw32-gcc-g++。这对我不起作用。使用 MinGW 安装管理器,我添加了:

      • mingw-developer-toolkit
      • mingw32-base
      • msys 基础
      • mingw32-gcc-g++(之前已经安装)

      所以正确的说明是:

      1. 从这里下载 mingw-get-setup.exe 安装程序:http://sourceforge.net/projects/mingw/files/Installer/
      2. 运行它
      3. 安装上面提到的包
      4. 将 c:\mingw\bin\ 添加到您的路径环境变量中
      5. 转到 c:\python34\Lib\distutils\ 并创建 distutils.cfg
      6. 打开 distutils.cfg 并插入两行

        [构建]

        编译器=mingw32

      我认为 compiler=mingw32 指的是 mingw32.exe 可执行文件。默认情况下,该文件对我来说不存在!我不得不复制一份 mingw32-c++.exe 并将其重命名为 mingw32.exe。

      我希望这对其他人有帮助!

      【讨论】:

        【解决方案3】:

        将编译器设置为 msvc (Visual Studio)

        已在 Windows 10 x64、Python 3.5.1 上测试。

        解决办法:

        将编译器设置为 msvc (Visual Studio)。

        在“C:\Python35-32\Lib\distutils”文件夹中创建“distutils.cfg”,包含以下信息

        [build]
        compiler=msvc
        
        [build_ext]
        compiler=msvc
        

        链接:https://wiki.python.org/moin/WindowsCompilers

        【讨论】:

          【解决方案4】:

          除了 zolointo 的回答之外,在按照您的说明进行 cython 安装后,它运行良好。我在 Windows 7 上使用 Python 3.4.1 安装 Kivy。Kivy 需要 Cython。下载 Cython 并运行安装脚本后,我收到以下错误:

          Cython 编译问题“error: Unable to find vcvarsall.bat”

          研究该错误使我走上了安装 MinGW 的道路。如果 MinGW 安装程序使用可选包使您不知所措,则需要安装 doc、lic、bin 和 dll。我安装了你上面提到的那些。

          如果你运行:

          python setup.py build_ext --inplace --compiler=mingw32'

          你会得到一个以下列结尾的错误列表:

          TypeError:不可排序的类型:NoneType() >= str()

          为了解决这个问题,我按照 zolointo 的说明将 MinGW 添加到 PATH 并创建了 distutils.cfg 文件。此时,您可以为 Cython 运行 setup.py,一切正常!

          【讨论】:

          • 看来你是在补充 zolointo 的答案,对吗?我编辑了您的答案以使其更清楚。
          【解决方案5】:

          在带有 Python 3.42 的 Windows 7 上,我可以用我发现的 in this thread: 解决这个问题 转到Python34\Lib 文件夹,在文件夹视图右上角的搜索框中输入dist-info 并删除所有找到的文件夹。在我无法通过 pip 安装任何东西而没有收到该线程的错误消息之后,这已经为我工作了两次。

          【讨论】:

            【解决方案6】:

            这是 Python 中报告的错误,请参阅:http://bugs.python.org/issue2698

            【讨论】:

            • 也许我不清楚。我在另一个 stackoverflow 线程之后解决了我的 vcvarsall.bat 问题。但是,在您链接到的错误页面中提到了bugs.python.org/issue8384。但是,那个并没有进一步帮助我。虽然他们通过指定 --compiler=mingw32 解决了这个问题,但当我这样做时,我仍然得到不可排序的类型错误。
            猜你喜欢
            • 1970-01-01
            • 2016-05-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-12-18
            相关资源
            最近更新 更多