Python – не удается установить пакеты: TypeError: неупорядоченные типы: NoneType() ›= str()

Система: 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», но решил это с помощью эта тема.

Я считаю, что эта проблема возникла из-за того, что я удалил Visual Studio Express несколько недель назад, поскольку я ее не использовал. Есть ли способ обойти эту ошибку без повторной установки VSE?

Спасибо!


person zolointo    schedule 10.07.2014    source источник


Ответы (6)


Я решил эту проблему conda install mingw в своей виртуальной среде, а затем поместив

[build]
compiler=msvc

в Lib\distutils\distutils.cfg

person maggie    schedule 14.07.2017

Кто-то порекомендовал мне попытаться скомпилировать helloworld.cpp с помощью mingw. Это не удалось!

В инструкциях, которые я использовал, говорилось, что мне нужно только установить mingw32-gcc-g++. Это не сработало для меня. Используя менеджер установки MinGW, я добавил:

  • mingw-инструментарий разработчика
  • mingw32-база
  • 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.

Я надеюсь, что это поможет кому-то еще!

person zolointo    schedule 11.07.2014

Установите компилятор на msvc (Visual Studio)

Он был протестирован на Windows 10 x64, Python 3.5.1.

Решение:

Установите компилятор на msvc (Visual Studio).

Создайте «distutils.cfg» в папке «C:\Python35-32\Lib\distutils» со следующей информацией.

[build]
compiler=msvc

[build_ext]
compiler=msvc

Ссылка: https://wiki.python.org/moin/WindowsCompilers

person Maks    schedule 11.06.2016

В дополнение к ответу zolointo установка cython работала нормально после выполнения ваших инструкций. Я устанавливаю Kivy с Python 3.4.1 в Windows 7. Kivy требует Cython. После загрузки Cython и запуска сценариев установки я получил следующую ошибку:

Проблема компиляции Cython "ошибка: невозможно найти vcvarsall.bat"

Изучение этой ошибки привело меня к установке MinGW. Если установщик MinGW перегружает вас необязательными пакетами, документами, лицензиями, bin и dll для установки. Я установил те, что вы указали выше.

если вы запустите:

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

вы получите список ошибок, оканчивающихся на:

TypeError: неупорядоченные типы: NoneType() >= str()

Чтобы исправить это, я последовал инструкциям zolointo, добавив MinGW в PATH и создав файл distutils.cfg. В этот момент вы можете запустить setup.py для Cython, и все заработает!

person Hugo Smitter    schedule 14.10.2014
comment
Кажется, вы добавляете к ответу Золоинто, я прав? Я отредактировал ваш ответ, чтобы сделать его более ясным. - person Aaron Hall; 14.10.2014

В Windows 7 с Python 3.42 я мог решить эту проблему с помощью того, что нашел в этой теме: Перейдите в папку Python34\Lib, введите dist-info в поле поиска в правом верхнем углу представления папки и удалите все найденные папки. Это уже сработало для меня два раза после того, как я больше не мог ничего устанавливать через pip, не получая сообщения об ошибке, о котором идет речь в этой теме.

person Dirk    schedule 07.04.2015

Это зарегистрированная ошибка в Python, см. здесь: http://bugs.python.org/issue2698

person Devashish Das    schedule 10.07.2014
comment
Может быть, я не ясно выразился. Я решил проблему с vcvarsall.bat после другого потока stackoverflow. Однако на странице ошибок, на которую вы ссылаетесь, есть упоминание о bugs.python.org/issue8384. Хотя это меня больше не спасает. В то время как они решили проблему, указав --compiler=mingw32, когда я это делаю, я все еще получаю ошибку неупорядоченных типов. - person zolointo; 10.07.2014