Как использовать Python "easy_install" в Windows ... это не так просто

После установки Python 2.7 в Windows XP, затем вручную установите %PATH% в python.exe (почему установщик python этого не делает?), затем установка setuptools 0.6c11 (почему установщик python этого не делает?), затем вручную устанавливает %PATH% в easy_install.exe (почему установщик не делает этого?), я наконец попытался установить пакет python с easy_install, но easy_install не удалось, когда не удалось установить пакет pywin32, что является зависимостью. Как я могу заставить easy_install правильно работать в Windows XP? Отказ следует:

 C: \> easy_install winpexpect
В поисках winpexpect
Лучший матч: winpexpect 1.4
Обработка winpexpect-1.4-py2.7.egg
winpexpect 1.4 уже активная версия в easy-install.pth

Использование c:\python27\lib\site-packages\winpexpect-1.4-py2.7.egg
Обработка зависимостей для winpexpect
Поиск pywin32>=214
Чтение http://pypi.python.org/simple/pywin32/
Чтение http://sf.net/projects/pywin32
Чтение http://sourceforge.net/project/showfiles.php?group_id=78018
Не найдено локальных пакетов или ссылок для загрузки для pywin32>=214
Лучший матч: нет
Traceback (последний вызов был последним):
  Файл "C:\python27\scripts\easy_install-script.py", строка 8, в 
    load_entry_point('setuptools==0.6c11', 'console_scripts', 'easy_install')()
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 1712, в основном
    with_ei_usage(лямбда:
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 1700, в with_ei_usage
    возврат f()
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 1716, в 
    distclass=DistributionWithoutHelpCommands, ** кВт
  Файл "C:\python27\lib\distutils\core.py", строка 152, в настройке
    dist.run_commands()
  Файл "C:\python27\lib\distutils\dist.py", строка 953, в run_commands
    self.run_command(CMD)
  Файл "C:\python27\lib\distutils\dist.py", строка 972, в run_command
    cmd_obj.run()
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 211, в рабочем состоянии
    self.easy_install(спецификация, а не self.no_deps)
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 446, в easy_install
    вернуть self.install_item(spec, dist.location, tmpdir, deps)
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 481, в install_item
    self.process_distribution(spec, dists[0], deps, "Using")
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 519, в process_distribution
    [требование], self.local_index, self.easy_install
  Файл "C:\python27\lib\site-packages\pkg_resources.py", строка 563, в разрешении
    dist = best[req.key] = env.best_match(req, self, installer)
  Файл "C:\python27\lib\site-packages\pkg_resources.py", строка 799, в best_match
    вернуть self.obtain(req, installer) # попробовать и скачать / установить
  Файл "C:\python27\lib\site-packages\pkg_resources.py", строка 811, в получении
    вернуть установщика (требование)
  Файл "C:\python27\lib\site-packages\setuptools\command\easy_install.py", строка 434, в easy_install
    self.local_index
  Файл "C:\python27\lib\site-packages\setuptools\package_index.py", строка 475, в fetch_distribution
    вернуть dist.clone(location=self.download(dist.location, tmpdir))
AttributeError: у объекта 'NoneType' нет атрибута 'клон'

6 ответов

Решение

Одна из проблем заключается в том, что easy_install настроен для загрузки и установки файлов.egg или исходных кодов (содержащихся в файлах.tgz, .tar, .tar.gz, .tar.bz2 или.zip). Он не знает, как обращаться с расширениями PyWin32, потому что они помещены в отдельный исполняемый файл установщика. Вам нужно будет загрузить соответствующий файл установщика PyWin32 (для Python 2.7) и запустить его самостоятельно. Когда вы снова запустите easy_install (если вы правильно установили его, как в инструкциях Sergio), вы должны увидеть, что ваш пакет winpexpect установлен правильно.

Поскольку мы говорим о Windows и open source, часто это может быть грязная комбинация методов установки, чтобы все работало правильно. Тем не менее, easy_install все же лучше, чем редактирование файлов конфигурации вручную.

Если вы используете 64-разрядную версию Windows 7, решение можно найти здесь: http://pypi.python.org/pypi/setuptools

а именно, вам нужно скачать скрипт Python, запустить его, и тогда easy_install будет работать нормально из командной строки.

PS Я согласен с оригинальным постером, говорящим, что это должно работать из коробки.

Я также согласен с ФП, что все эти вещи должны поставляться с уже установленным Python. Я думаю, нам придется иметь дело с этим до наступления того дня. Вот решение, которое действительно работает для меня:

установка easy_install быстрее и проще

Я надеюсь, что это поможет вам или кому-либо с той же проблемой!

Скопируйте приведенный ниже скрипт "ez_setup.py" с нижеуказанного URL

https://bootstrap.pypa.io/ez_setup.py

И скопируйте его в свое местоположение Python

C: \ python27>

Запустите команду

C: \ python27? python ez_setup.py

Это установит easy_install в директорию Scripts

C: \ python27\Scripts

Запустите легкую установку из каталога Scripts>

C:\Python27\Scripts> easy_install

Если вы используете дистрибутив Anaconda's Python,

Вы можете установить его через пункт

pip install setuptools

а затем выполнить его как модуль

python -m easy_install

Во-первых, он говорит, что у вас уже установлен этот модуль. Если вам нужно обновить его, вы должны сделать что-то вроде этого:

easy_install -U имя_пакета

Конечно, easy_install не очень хорошо работает, если в пакете есть несколько заголовков C, которые нужно скомпилировать, и у вас не установлена ​​правильная версия Visual Studio. Вы можете попытаться использовать pip или distribution вместо easy_install и посмотреть, работают ли они лучше.

Другие вопросы по тегам