@spbpython

Страница 260 из 785
Dmitry
24.01.2017
11:34:33
когда делаю pip install -r requirements.txt всё ок, но вот с модулем из git беда =(
ты как авторизуешься пипом в этот репозиторий-то? У гитлаба для этого специальные токены есть, емнип

Roman
24.01.2017
11:37:22
Dmitry
24.01.2017
11:38:54
в общем, попробуй git@ добавить, как я выше написал. Может сразу заработает

username недостаёт тебе

Google
Eugene
24.01.2017
11:40:07
Если репозиторий private, то надо по ssh с него тянуть (git@).

У меня, например, проекты из разных git-репозиториев, они все приватные, приходится настраивать config для ssh, чтобы можно было работать с несколькими ключами. Не очень удобно, но другого способа я не знаю

Dmitry
24.01.2017
11:43:49
вот так ещё попробуй git+git://gitlab.i.somedomain.com

если авторизация не требуется, у тебя явно с синтаксом этой строчки что-то

кстати, почему ты версии пакетов не указываешь явно?

Serge
24.01.2017
11:45:52
кстати, почему ты версии пакетов не указываешь явно?
Ой, я помню эту тему. Ой, что сейчас будет...

Eugene
24.01.2017
11:46:02
я тут почитал, а разве requirements поддерживает git+git протокол?

https://pip.readthedocs.io/en/1.1/requirements.html#requirements-file-format -e надо указывать

Dmitry
24.01.2017
11:48:41
https://pip.readthedocs.io/en/1.1/requirements.html#requirements-file-format -e надо указывать
странная ссылка. Вот: https://pip.pypa.io/en/stable/reference/pip_install/#git

да, он умеет git+git

Eugene
24.01.2017
11:49:50
Что странного? Там написано, что нужно "-e" указывать перед

Dmitry
24.01.2017
11:50:10
Ой, я помню эту тему. Ой, что сейчас будет...
что будет? о_0 Разве оно при очередном деплое не должно нечаянно стянуть мажорный апдейт какого-либо пакета и упасть из-за несовместимости кода?

Google
Serge
24.01.2017
11:50:35
но да, так оно и делает

Dmitry
24.01.2017
11:51:17
Что странного? Там написано, что нужно "-e" указывать перед
странно что ты линканул документацию к pip 1.1, когда он 9+

Serge
24.01.2017
11:51:19
поэтому я вот и перешел на двойной requirements и очень жду pipfile стабильный

Serge
24.01.2017
11:52:08
что такое двойной requirements?
я же показывал. пишу ручками requirements.in

Eugene
24.01.2017
11:52:11
Формат requirements файлов не менялся, поэтому что 9, что 1, без разницы.

Serge
24.01.2017
11:53:34
я же показывал. пишу ручками requirements.in
на своей тачке в девелоп ветке живу так, обновляю по возжможности потом pip freeze -r requirements.in > requirements.txt и в тестах, на CI и на проде живу с фриженым requirements.txt

Формат requirements файлов не менялся, поэтому что 9, что 1, без разницы.
это не совсем так. всё из 1.0 будет работать, но до 9.0 добавлялось разное, в частности с -e и другими ключами связанное. надо ченжлог посмотреть

Eugene
24.01.2017
11:55:27
Вот на счёт версий кстати недавно напоролся. Ставим сначала PyQt 5.7.1, он с багами, откатываемся на PyQt 5.7.0 и он не работает. Не работает, потому что вместе с ним не откатывается SIP, который 4.19 для 5.7.1, и 4.18 для 5.7.0 Это баг дистрибьютинга или родовая травма всей этой pip-идеи?

Eugene
24.01.2017
11:56:22
pip install -U —force-reinstall

Serge
24.01.2017
11:56:39
вообще, при откатах лучше вайпать venv, конечно

Eugene
24.01.2017
11:57:40
Ну можно попробовать повторить в чистом venv

Serge
24.01.2017
11:58:21
но! возможна ситуация, что в зависимостях PyQt 5.7.0 слишком оптимистичное условие и там какой-то пакет стал новее, чем можно, но когда писали эту зависимость, всё было ок

Eugene
24.01.2017
11:59:19
Вот я и спрашиваю, это проблема конкретного пакета (кривой setup), либо это вообще проблема общая при даунгрейде?

Serge
24.01.2017
11:59:26
хм, а профит в чём?
r...in нужен чтобы хранить твои услови на пакеты, что ты в голове считаешь зависимостями, а r...txt - это фриз, чтобы вот ничего поновее не сломало тебе ничего

локально я увижу обновление либы, когда установлюсь из r...in и проверю, что ничего не поломалось, тогда соберу новый r...txt

Google
Serge
24.01.2017
12:00:56
теоретически, если с тестами всё хорошо, это можно автоматизировать на CI, но лучше это делать в отдельном pipeline

Dmitry
24.01.2017
12:05:37
а, так у тебя окружение локальное постоянно отличается от остальных

это ж не очень как-то

Serge
24.01.2017
12:06:27
мне же никто не мешает спокойно жить с r...txt

Dmitry
24.01.2017
12:06:53
так когда ты захочешь ты можешь и .txt начать менять

Serge
24.01.2017
12:07:18
нет, его нельзя просто так менять, оно делается freez-ом и тестируется

это некая осмысленная операция

но к ней легко придти через r...in

Dmitry
24.01.2017
12:08:50
у меня чаще просто development.txt и production.txt внутри pip_requirements/

подозреваю что почти тоже самое

Serge
24.01.2017
12:09:11
а какая в них разница?

Serge
24.01.2017
12:09:31
ключевая штука здесь pip freeze -r r...in

это очень очень полезная команда

у меня чаще просто development.txt и production.txt внутри pip_requirements/
а это вот неудобно, когда у тебя docker и python onbuild. да и вообще. requirements.txt есть - сразу понятно, берем его и не паримся, пока не сломается. а в твоем случае не очень понятно что брать, чтобы на сервере демку поднять без тебя

Dmitry
24.01.2017
12:13:10
./build.sh && ./up.sh :) в случае чего - README.md

Roman
24.01.2017
12:18:40
крч, это я олень и забыл libffi-dev в зависимости добавить ))

Roman
24.01.2017
12:21:09
а причём здесь оно? о_0
да у меня была беда в том, что хоть cffi и есть в зависимостях, но на этапе сборки модуля из git не находило хидеры

Dmitry
24.01.2017
12:21:37
аа. Так блин, я думал тебе пип говорит что урл не найден

Google
Dmitry
24.01.2017
12:21:47
надо было у тебя вывод потребовать :)

Serge
24.01.2017
12:26:34
./build.sh && ./up.sh :) в случае чего - README.md
ну т.е. свои велосипедики вместо существующих инструментов. ну тоже путь, да;)

Dmitry
24.01.2017
12:26:44
не не

ап-то компоуз поднимет =)

и зачем на сервере кому-то придётся брать requirements.txt, если это всё внутрянка докер-образа?

Dmitry
24.01.2017
12:35:32
так ./build.sh и всё

девопсу вообще нужен минимум геморроя с апп-историей

Roman
24.01.2017
12:36:06
так ./build.sh и всё
а что там внутри будет?

Dmitry
24.01.2017
12:36:14
вот там и будет сборка докер-образа

Admin
ERROR: S client not available

Serge
24.01.2017
12:36:55
и зачем на сервере кому-то придётся брать requirements.txt, если это всё внутрянка докер-образа?
а у тебя есть в репе Dockerfile? это хорошо. но у вот у некоторых нету. а если его поменять захочется, то придется понимать кастомную логику, это все равно хуже, чем иметь некий requirements.txt, с которым точно работает

https://rutube.ru/video/419a16ec7734e9a211b0d82dd0e274ee/

Dmitry
24.01.2017
12:42:08
идея в единых точках входа, не завязанных на проект

чтобы было понятно куда идти всегда

и в большинстве случаев можно даже туда не идти и не разбираться с логикой, а тупо дёрнуть известные имена

Serge
24.01.2017
12:44:31
ну, типа да

docker-compose.yml Dockerfile requirements.txt

я вот знаю зачем эти штуки, а какой смысл ты вкладывал в файлики в папке pip_requirements, мне не очень ведомо

Google
Serge
24.01.2017
12:46:19
и у меня как бы уже есть все инструменты чтобы это запустить, мне не нужны никакие твои тулзы для этого

мало того, я могу и проанализировать сразу статически что-то про твою репу единообразно с любой другой

Dmitry
24.01.2017
12:49:22
Ясно.

Sergey
24.01.2017
12:53:40
на пред. проекте юзался shippable.com для тестов и каждый раз много времени занимала установка requirements

Dmitry
24.01.2017
12:54:44
на пред. проекте юзался shippable.com для тестов и каждый раз много времени занимала установка requirements
один из вариантов, которым это фиксится - вынести базовый образ с зависимостями и наследоваться от него. Тогда зависимости ставить надо будет лишь при изменениях

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

Привычки с определённого проекта остались

Serge
24.01.2017
12:55:33
если мы про докер, то там же кэш для этого, не?

Dmitry
24.01.2017
12:56:26
а, ну да https://medium.com/playmoweb-android-ios-development/speed-up-your-builds-with-docker-cache-bfed14c051bf#.3i1t5q553

Sergey
24.01.2017
13:01:07
там у них был кэш, не знаю свой или докеровский, и он ускорял намного, но из-за этого возникали ошибки при изменениях requirements

Dmitry
24.01.2017
13:01:53
я тоже не очень понимаю как этот кэш работает

Serge
24.01.2017
13:08:15
я тоже не очень понимаю как этот кэш работает
построчно. если строка не изменилась, кэш не инвалидирован. для COPY и ADD проверяется источник

Sergey
24.01.2017
13:08:57
это было бы тяжело, прокт был разделён на кучу пакетов, в каждом были свои зависимости

Serge
24.01.2017
13:10:00
т.е. вот RUN pip install requirements.txt не инвалидирует кэш, если requirements.txt изменился

поэтому надо делать перед жтим явно COPY requirements.txt, потом pip install, потом COPY весь проект

Serge
24.01.2017
13:11:12
как будто у тебя не велосипедики
где? результат я отдаю requirements.txt, а как я его подготовил - это уже мои проблемы

ну и опять же, я использую возможности pip freeze

Andrey
24.01.2017
13:12:05
Serge
24.01.2017
13:12:30
вот метод подготовки и есть велосипед
чего это? стандартная возможность pip freeze

более того, утвержденная в Pipfile как основной форкфлоу

Страница 260 из 785