Зависимости проекта Django

#python #django #dependency-management #setup.py #install-requires

#python #django #управление зависимостями #setup.py #требуется установка

Вопрос:

Я создал setup.py и setup.cfg , как описано в документах Django.

Теперь я не уверен, как добавить зависимости в мой проект.

Если кто-то установит мой код, другие инструменты, такие как Pillow, должны быть установлены автоматически.

Я читал, что install_requires это правильный путь (нет requirements.txt ), но как это указать?

Файл setup.py выглядит довольно общим, и все содержимое находится внутри setup.cfg .

Но все примеры, которые я вижу, имеют свой список зависимостей в setup.py via install_requires .

Как указать зависимости проекта Django?

Комментарии:

1. что вы подразумеваете под указанием зависимостей проекта Django

2. @iklinac Если я установлю проект через pip, тогда должны быть установлены зависимости, такие как Pillow.

3. вы можете добавить все требования, необходимые вашему пакету, в install_requires

4. @iklinac У вас есть пример того, как поместить зависимости в setup.cfg?

5. github.com/django/django/blob/master/setup.cfg#L43

Ответ №1:

Немного странно, что документы Django по этому вопросу отсутствуют. Но да, install_requires аргумент setup() или install_requires ключ setup.cfg — это правильный путь.

Вы должны зависеть от Django, и если вы полагаетесь на Pillow, pillow тоже.

Вы все еще можете использовать requirements.txt и если вы хотите быть дружелюбными к будущему (как setup.py находится на выходе — но это займет много времени), рекомендуется сделать это.

Собрав все это вместе, я бы добавил:

requirements.txt

 Django==maj.min.patch
Pillow==maj.min.patch
 

setup.py

 #!/usr/bin/env python
from setuptools import setup
import os.path


def read_requirements():
    path = os.path.join(os.path.dirname(__file__), "requirements.txt")
    with open(path, "rt") as f:
        requirements = f.read()

    return requirements.splitlines(keepends=False)


setup(install_requires=read_requirements())
 

Комментарии:

1. Не могли бы вы предоставить ссылку, по которой я могу узнать больше о «setup.py находится на пути к выходу». Это ново для меня.