#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?
Ответ №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 находится на пути к выходу». Это ново для меня.