2010-01-07 3 views
3

Я пытаюсь связать некоторые зависимости от яиц при использовании py2exe и, как указано на сайте py2exe, он не работает с ними, и мне нужно сначала разархивировать их. Я попытался сначала запустить easy_install -m lxml, а затем easy_install --always-unzip lxml==2.2.2, но это не сработало. Затем я попытался установить разгрузочное поведение по умолчанию, поставив его на distutils.cfg. Я не нашел последний файл, так что я сделал переменную HOME среды и создал pydistutils.cfg там файл с этим содержимым:Как распаковать яйца python?

[easy_install] 
zip_ok = 0 

но easy_install еще не распаковывать яйца. Каков самый простой способ добиться успеха?

+0

Нет причин, по которым опция unzip не должна работать, если только вы не ошиблись. Попробуйте вместо этого вариант '-Z' этого параметра ... и уверены ли вы, что он действительно не распаковывал почту? Проверьте easy-install.pth, чтобы увидеть, какая запись на самом деле там. Файл яйца lxml помечен как «не-zip-safe», поэтому он не может быть установлен как яйцо в любом случае. –

ответ

2

Быстрый взломать/обход: файлы яиц - это только файлы zip, поэтому вы можете использовать zipfile-модуль python, чтобы распаковать их. Может быть, вы могли бы переименовать easy_install файл «easy_install_pre.exe», и создать новый BAT-файл с именем «easy_install.bat»:

easy_install_pre.exe %1 
unzip_eggs.py %1 
+0

Вы уверены, что они будут работать правильно после таких манипуляций? – Fluffy

+1

Я уже распаковал яйца и использовал их без проблем для py2exe. В этих случаях я переименовал распакованный файл в имя пакета и поместил его в исходный каталог. Тем не менее, я использую дистрибутив сейчас и получаю файлы яйца, распакованные в каталоги .egg по умолчанию. –

0

zippped файл пакета должен быть сначала удаляется перед установкой. Тогда это легко.

Все методы распакованной установки, описанные в вопросе, должны работать, если первый пакет удален, но без него не работает. Переустановка zipped-пакета после распакованной установки, наоборот, возможна при нормальном обновлении без необходимости удаления чего-либо. Это было типично для некоторых старых версий easy_install, связанных с периодом Python 2.5.

Смежные вопросы