Что: aa5ed952b6d9b9ace12c5318745a1e88352ffa8f
Когда: 2020-02-07 00:19:56+03:00
Темы: python
GoCheese, Py27 и setuptools С 2020-го года Python2 решили похоронить и сделали не шибко приятную штуку: одна из очередных версий setuptools более не работает под py27. Если я делаю mkvirtualenv для py27, то он по умолчанию ставит setuptools, который подтягивается самый свежий и падает из-за несовместимости. Можно указать --no-setuptools, сделать venv, а уже в нём поставить работающий pip install setuptools==42.0.2. Но, у многих пакетов среди зависимостей setuptools тоже указан и с таким условием, что они всё-равно будут пытаться утащить более новый (чем 42) setuptools и тоже упадут при установке. Способа сказать глобально, чтобы не тянул setuptools более новый чем 42, тем более, что он уже стоит в venv-е, я не нашёл. С момента большого релиза GoCheese я его стал на постоянной основе использовать локально для кэширования всех пакетов (родной кэш pip... мягко говоря, не работает, не хочу даже разбираться почему), ибо с ним легко управляться, он быстр и легко ставится (даже не требует конфигов и запускается просто как ./gocheese). По началу я удалил все более новые версии setuptools в нём и указал в pip.conf использовать URL GoCheese который не ходит в upstream за обновлением новых версий. Это работает и решает проблему с setuptools. Однако мне всё же хочется для ряда пакетов чтобы они обновлялись! Возиться с каждым пакетом вручную, возможно указывая pip install-у разные URL-ы -- геморрой. Проблему решил просто: указал GoCheese-у что setuptools это приватный/внутренний пакет и в upstream он не ходит за обновлениями: touch packages/setuptools/.internal. Проблема с созданием и заполнением py27 venv-ов у меня полностью решилась, при этом всё везде кэшируется, обновляется и работает.
Сгенерирован: SGBlog 0.34.0