2011-01-20 2 views
1

Я пишу небольшое приложение python. Я хочу иметь возможность легко развертывать приложение. Я знаю, что python 2.6 позволит выполнить яйцо напрямую, если в корне яйца есть основной модуль. У меня на самом деле это работает.Обработка пакетов верхнего уровня с помощью setuptools (или другого строителя яиц python)

Один из них заключается в том, что когда я пытаюсь использовать библиотеку argparse, я не могу включить библиотеку в яйцо, не устанавливая его в исходную директорию (или символическую ссылку в файле argparse.py в исходный каталог), поскольку модуль argparse находится в пакете верхнего уровня.

Если я устанавливаю его в подкаталог под названием «argparse», я должен импортировать его как «из argparse import argparse» вместо обычного «import argparse».

Я хотел бы иметь возможность указать каталог типа сайта-пакета в яйце, где я мог бы просто установить сторонние модули/пакеты. Есть ли способ сделать это с помощью setuptools (или другого строителя яиц)?

Спасибо!

ответ

0

Я считаю, что вы можете создать подкаталог TopLevel и точка входа сделать

import sys 
sys.path.insert(0, './toplevel') 

непроверенными, однако.

+1

В итоге я сделал что-то похожее на это. Я установил используемые библиотеки libs в пакет otherlibs и включил otherlibs в список пакетов в установочном вызове. В модуле __main__ я затем добавил каждую из каталогов с вызовом site.addsitedir(). Теперь мне просто нужно найти хорошую инфраструктуру для выполнения установок в подкаталоги otherlib. В настоящее время я просто использую скрипт оболочки, но я хочу, чтобы что-то более декларативное объявляло зависимости lib. –