2009-10-03 8 views

ответ

7

Из-за несовместимых изменений версии 2.6.3 версии distutils python старый easy_install от setuptools больше не работает. Вам необходимо заменить его на easy_install от Distribute. Следуйте инструкциям, там, в основном:

$ curl -O http://nightly.ziade.org/distribute_setup.py 
$ python distribute_setup.py 

предполагая 2.6.3 python является первым на вашем $PATH.

EDIT: Помимо возможности перехода из setuptools в Distribute, Python 2.6.4, который должен быть выпущен через пару недель, будет содержать workaround в distutils, который будет unbreak setuptools. Спасибо, Тарек, за исправление и благодарность, jbastos, за то, что он поднял эту проблему.

ДАЛЬНЕЙШАЯ РЕДАКТИРОВКА: setuptools сам был обновлен (начиная с 0.6c10), чтобы обойти проблему с 2.6.3.

+0

Я сделал это, но теперь я получаю другую ошибку > В файле, включенном в libxml.h: 53, > от SAX.c: 12: > trio.h: 37: 19: error: stdio.h: Нет такого файла или каталога – jbastos

+1

У вас есть дополнительный 10.4 SDK, установленный с Xcode? ls /Developer/SDKs/MacOSX10.4u.sdk/ Что такое вывод xml2-config --libs --prefix? –

+0

На самом деле, если у вас установлен setuptools, вы можете просто easy_install Distribute. Установка Distribute, похоже, не вызывает ошибку. –

3

Ned:

incompatible changes in the 2.6.3 version of python's distutil

Не точно. API не изменился, но Setuptools переопределяет их и делает предположение, что они вызываются в определенном порядке.

Леннарт:

The Distribute installation doesn't seem to trigger the bug

Да, действительно, это точная ошибка была обнаружена некоторое время назад и фиксируется в Распределить (и в пакете Setuptools в Ubuntu)

+1

@Tarek: хорошо ли это, что Setuptools переопределяет их, не является точкой. Дело в том, что это происходит долгое время, и теперь это не работает в 2.6.3, поэтому пользователи должны изменить то, что они делали, и они не знают этого. Перемещение с setuptools на Distribute в порядке, но пользователям easy_install необходимо знать, что они должны это делать –

+1

@Ned: Поэтому мы говорим им. :) –