отметить, что setuptools при сборке source distribution по умолчанию включает в сборку только файлы .py, .c, .cpp и .h. Чтобы файлы с зависимостями requirements.txt и requirements.dev.txt попали в пакет, их необходимо явно указать в файле MANIFEST.in
Для этого достаточно объявить файл или нужно еще где-то куда-то что-то дописать?
чекни там репа есть
Я прочитал, попробовал - создал MANIFEST.in файл, написал туда include project/alembic.ini. Не копирует. Может, там какой-то параметр в setup() нужен?
project это пакет? или директория, в которой лежит setup.py?
пакет. Я наугад добавил include_package_data=True в setup(), и всё заработало.
мдэ, тягать зависимости из requirements. и нахрена?
ты дистрибутивы какого формата собираешь? проверь оба два (sdist и wheel) потому что include_package_data может быть недостаточно для одного из них, на вскидку не помню точно.
а то что это бессмысленно выносить install_requires в отдельный файл, чтобы потом костылями его оттуда читать.
install_requires=[список зависимостей]
Я сразу wheel собираю
а вообще можно уже отказаться от императивного setup.py и воспользоваться благами PEP 517 \ PEP 518 и использовать декларативный стиль или любой другой тулчейн по вкусу
Но так надо будет вручную все зависимости писать. А если из файла читать, то можно $ pip3 freeze > requirements.txt $ python3 setup.py bdist_wheel
нельзя так делать
И почему же?
с некоторыми оговорками да, для editable install емнип еще не все поддерживается.
говно какое. отвратительно.
1. если ты собираешь библиотеку, тебе нужны диапазоны версий, а не прибитые гвоздями номера версий. 2. pip freeze генерирует весь список зависимостей включая транзитивные.
1. Можно взять и отредактировать файл. 2. 1. Я например не всегда помню, какие зависимости у меня скачены. Например про SQLAlchemy помню, а про asyncpg - нет, потому что скачал и забыл. И если сперва писать в файл, а потом его редактировать, то будет либо идеально, либо будет перекос в черезмерную подробность, а не в недостаточную. С недостаточной ты сдохнешь, а с черезмерной - нет. По крайней мере это что я пока для себя вывел. Или можно как-то иначе всё не забывать?
что "2.1"? Если у тебя нет отдельно написанного списка прямых зависимостей, ты никогда не сможешь обновить транзитивные корректно
2. 1. - второй пункт - это первый пункт.
ниухя не получится
Как-то вы все вяло сегодня аргументируете 😁
вот ты сделал pip freeze и получил список a==1.1 b==2 что дальеш?
Каким на проду. Логично же.
Буду вспоминать, что из этого скачал я (еще найду либу, которую я поставил и забыл, какой-нибудь python-dotenv), заменю == на ~==... Короче ладно, убедили. Если в файл писать и из него читать, то неоднозначностей больше.
ты что не знаешь какие зависимости в коде используешь? шта?
Я риски сравнивал. Забыть можно что-угодно. Но вы меня убедили, лучше в файл не писать
тесты никто не отменял
Обсуждают сегодня