После установки пакета Python под другим именем - PullRequest
4 голосов
/ 27 мая 2010

Я разрабатываю пакет под названием garlicsim. ( Website .) Пакет предназначен для Python 2.X, но я также предлагаю поддержку Python 3 на другом форке под названием garlicsim_py3. (1)

Таким образом, оба этих пакета работают бок о бок в PyPI, и пользователи Python 3 устанавливают garlicsim_py3, а пользователи Python 2 устанавливают garlicsim.

Проблема в том, что когда сторонние модули хотят использовать garlicsim, у них должно быть одно имя пакета, а не два. Конечно, они могут сделать что-то вроде этого:

try:
    import garlicsim
except ImportError:
    import garlicsim_py3 as garlicsim

Но я бы предпочел не заставлять разработчиков этих модулей делать это.

Есть ли способ, которым garlicsim_py3 установится под псевдонимом garlicsim? Я хочу, чтобы пользователь Python 3 мог import garlicsim и постоянно называть модуль garlicsim, но это действительно будет garlicsim_py3.

Я знаю, что проект Distribute делает что-то вроде этого: они делают это так, что вы можете импортировать setuptools, и он будет перенаправлен в их код. Понятия не имею, как они это делают.

Есть идеи?


(1) Я принял решение поддерживать Python 3 на развилке, а не в той же кодовой базе; Для меня важно, чтобы база кода была чистой, и я действительно не хотел бы вводить хаки совместимости.

1 Ответ

1 голос
/ 28 мая 2010

В конце концов я решил не делать этого, и просто два проекта имеют одно и то же имя пакета, даже если у них другое имя PyPI.

...