Как использовать 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
Searching for winpexpect
Best match: winpexpect 1.4
Processing winpexpect-1.4-py2.7.egg
winpexpect 1.4 is already the active version in easy-install.pth

Using c:\python27\lib\site-packages\winpexpect-1.4-py2.7.egg
Processing dependencies for winpexpect
Searching for pywin32>=214
Reading http://pypi.python.org/simple/pywin32/
Reading http://sf.net/projects/pywin32
Reading http://sourceforge.net/project/showfiles.php?group_id=78018
No local packages or download links found for pywin32>=214
Best match: None
Traceback (most recent call last):
  File "C:\python27\scripts\easy_install-script.py", line 8, in 
    load_entry_point('setuptools==0.6c11', 'console_scripts', 'easy_install')()
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1712, in main
    with_ei_usage(lambda:
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1700, in with_ei_usage
    return f()
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 1716, in 
    distclass=DistributionWithoutHelpCommands, **kw
  File "C:\python27\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\python27\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "C:\python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 211, in run
    self.easy_install(spec, not self.no_deps)
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 446, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 481, in install_item
    self.process_distribution(spec, dists[0], deps, "Using")
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 519, in process_distribution
    [requirement], self.local_index, self.easy_install
  File "C:\python27\lib\site-packages\pkg_resources.py", line 563, in resolve
    dist = best[req.key] = env.best_match(req, self, installer)
  File "C:\python27\lib\site-packages\pkg_resources.py", line 799, in best_match
    return self.obtain(req, installer) # try and download/install
  File "C:\python27\lib\site-packages\pkg_resources.py", line 811, in obtain
    return installer(requirement)
  File "C:\python27\lib\site-packages\setuptools\command\easy_install.py", line 434, in easy_install
    self.local_index
  File "C:\python27\lib\site-packages\setuptools\package_index.py", line 475, in fetch_distribution
    return dist.clone(location=self.download(dist.location, tmpdir))
AttributeError: 'NoneType' object has no attribute 'clone'

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

Скопируйте ниже script "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

Ответ 5

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

easy_install -U packageName

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

Ответ 6

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

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

pip install setuptools

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

python -m easy_install