
Serge
18.09.2016
13:31:12
Да и там это уже не модно. import же
Нормальные названия файлов для слабаков

Michael
18.09.2016
13:42:40
Это как питоновские пепы

Google

Sergey
18.09.2016
15:37:02
Миша, ты его правда прочитал?

Michael
18.09.2016
15:48:12
Не этот старый читал

Aleksandr
18.09.2016
16:13:41
Это вообще не опасно качать?

Sergey
18.09.2016
16:17:58

Dmitry
19.09.2016
05:18:35
@lig11 завтра придёшь на митап?

Serge
19.09.2016
06:39:00

Dmitry
19.09.2016
06:39:37
отличн


Danil
19.09.2016
10:27:37
#python #pydigest
Осень, прекрасная осень...
Python Дайджест представляет новый выпуск сборника новостей из мира Python.
Все самое вкусное и интересное.
А мы не устаем напоминать, что уже скоро вы сможете пообщаться с единомышленниками на двух конференциях:
1-2 октября пройдет PyCon Siberia 2016 (Красноярск)
12 октября пройдет Moscow Python Conf (Москва)
Свежий, 143-тий, выпуск дайджеста содержит:
- Softmax классификатор самолетов
- 17 мест, где можно взять наборы данных для проектов
- Machine Learning за год: процесс за год
- Решение проблемы многоядерности на Python
- Развертывание современных приложений на древней инфраструктуре с помощь pkgsrc
- beeprint - библиотека для более понятного вывода дебаг информации
- parameth - утилита для подбора GET и POST параметров
- asynq - библиотека асинхронного программирования
- gdb-dashboard - модульный визуальны интерфейс для GDB
- py-d3 - плагин поддержки d3.js для Jupyter
и многое другое
Заходите в гости - http://pythondigest.ru/issue/143/


Serge
19.09.2016
10:31:48


Aleksandr
19.09.2016
10:33:26
BTW встречаемся в зале обычном, который на первом этаже?

Dmitry
19.09.2016
11:03:27

Serge
19.09.2016
11:03:34

Aleksandr
19.09.2016
11:03:48
ОК, просто раньше всегда приписывалось, что зал в другом месте. Теперь это дефолт :)

Google

Aleksandr
19.09.2016
11:04:02
А я и не знал.

Andrey
19.09.2016
11:07:19
а указатели будут?

Serge
19.09.2016
11:07:33
Скорее всего

Andrey
19.09.2016
11:07:41
отлично

Andrey
19.09.2016
12:45:02
https://github.com/pytest-dev/pytest-xdist/issues/88 норм такой баг

Dmitry
19.09.2016
12:46:39
прикольно)

Andrey
19.09.2016
12:48:49
на заметку всем, кто будет писать что-то, что запускается по изменению файла

Zart
19.09.2016
12:58:56
"вечный кайф", сказал Слон, прикрыв хоботом жопу

Andrey
19.09.2016
14:26:13
а вот такой вопрос созрел
есть несколько пакетов, они добавлены в мой PYTHONPATH, для некоторых пакетов я могу сделать pkg_resources.require('packet-name') для других получаю ошибку DistributionNotFound
уже всю голову сломал и не понимаю почему так

Zart
19.09.2016
14:28:21
что ты называешь "пакетами", для начала?
потому что pkg_resources.require ищет дистрибушены

Andrey
19.09.2016
14:29:15
пакетами я называю директорию где есть setup.py и исходники

Zart
19.09.2016
14:29:36
т.е. ты сунул его прямо в таком виде на питонпатх?

Andrey
19.09.2016
14:29:42
да
не спрашиваю почему так

Zart
19.09.2016
14:30:01
ну так и работать это не будет в таком виде

Andrey
19.09.2016
14:30:21
хорошо, в каком виде будет? и почему для половины случаев работает

Zart
19.09.2016
14:30:26
потому что ряд пакетов юзает исходники не напрямую в каталоге, а скажем в src

Google

Zart
19.09.2016
14:30:33
вот они-то и не пашут

Andrey
19.09.2016
14:30:42
нууууу

Zart
19.09.2016
14:30:55
точнее даже не так. оно вообще пахать не должно по определению
содержимое PYTHONPATH на старте заносится в sys.path
в дополнение к автоматически добавляемым модулем site местам

Andrey
19.09.2016
14:31:41
не томи
к чему ты клонишь?

Zart
19.09.2016
14:31:56
и там оно ищет пакаджи - это каталоги с __инит__
а pkg_require.require на входе имеет список требований requirements
которые оно ресолвит через поиск на pypy index'е и по find_links путям, ища egg-info/dist-info файлы и подкаталоги с метаинфой
причем там используются имена дистрибушенов, те, которые в setup(name= ...)

Andrey
19.09.2016
14:34:05
это я знаю

Zart
19.09.2016
14:35:17
в общем чтобы жить было проще
pip install -t somedir ...список пакетов...
установит тебе этот список в указанный каталог, который ты можешь смело пихать в PYTHONPATH/sys.path

Zart
19.09.2016
14:36:43
в этом случае туда будут установлены бдисты
а по твоему описанию выше выходит что ты суешь сдисты

Andrey
19.09.2016
14:37:02
да понятно это все. Я не буду вдаваться в подробности почему сейчас так как оно есть, к сожалению так нельзя сделать _прямо сейчас_
но ты меня натолкнул на мысль

Zart
19.09.2016
14:37:45
скорее всего тебе придётся добавлять для некоторых пакаджей дополнительные пути в питонпатх
скажем PYTHONPATH=lib:lib/somedist/src
можешь глянуть в setup.py в поисках аргумента вида package_dir={'': 'src'}
который и отвечает за маппинг подкаталогов на пакаджи

Andrey
19.09.2016
14:39:09
благодарю

Zart
19.09.2016
14:40:27
http://stackoverflow.com/a/17616626/356274 мой ответ на СО достаточной бородатости

Google

Zart
19.09.2016
14:42:27
с момента написания поста я правда открыл что пкг_ресурсы умеют искать автоматом нужный список подкаталогов внутри зипа, при правильной фазе луны

Serge
19.09.2016
14:45:28
ну или всегда есть docker

Andrey
19.09.2016
14:45:50
чем он поможет?

Zart
19.09.2016
14:46:07
всегда есть ядерная боеголовка и пакет семечек...

Serge
19.09.2016
14:46:25
не надо никаких require. ты точно знаешь, что твое окружение такое же как всегда

Andrey
19.09.2016
14:47:16
ну тут вопрос не в чистоте окружения
это я решаю прекрасно с помошью nix

Admin
ERROR: S client not available

Zart
19.09.2016
14:47:38
а в чем? я когдато тоже пытался юзать require
быстро забил

Andrey
19.09.2016
14:47:52
грубо говоря мне нужно получить версию пакета из него самого
и не только из него
это боль и грязь я знаю

Zart
19.09.2016
14:48:24
тогда ты неправильно это делаешь

Andrey
19.09.2016
14:48:31
но тут большой кусок легаси который на это опирается
а как правильно?

Zart
19.09.2016
14:49:31
>>> pkg_resources.get_distribution('pip').version
'8.1.1'
require парсит список хотелок, потом сканирует нахер интернеты
а гет_дистрибушен ищет только то что есть локально
"сканирует интернеты" = "вызывает коллбак, который должен этим заниматься", так изи_инсталл и билдаут работают

Google

Zart
19.09.2016
14:52:59
а в pkg_resources.working_set лежит полный список всего:
>>> pprint.pprint(list(pkg_resources.working_set))
[pip 8.1.1 (c:\program files (x86)\python 2.7\lib\site-packages),
pywin32 220 (c:\program files (x86)\python 2.7\lib\site-packages),
setuptools 20.10.1 (c:\program files (x86)\python 2.7\lib\site-packages)]

Andrey
19.09.2016
14:53:37
ладно я понял что я сейчас потону в потоке информации, поэтому перефразирую вопрос. Можно ли как-то сделать рассыпуху исходников видимой для get_distribution/required?

Zart
19.09.2016
14:53:56
неа, если у неё мета инфы нет
setup.py содержит в себе name/version, вот это всё
когда ты собираешь/ставишь пакеты, одним из действий вызывается egg_info, который генерит файлик/каталог egg-info, куда эта инфа и сохраняется
все эти require/get_distribution сканируют на предмет оных
если есть просто пакадж с кодом, но без меты, в там оно не проявится вообще

Andrey
19.09.2016
14:56:12
можно программно эту инфу сгенерить без создания .egg-info?

Zart
19.09.2016
14:57:14
в принципе да, но боюсь это не самая простая задачка

Andrey
19.09.2016
14:58:19
ну ладно придется делать bdist/sdist, видимо

Zart
19.09.2016
14:58:25
думаю через метапровайдеры в пкг_ресурсах или sys.meta_path... но это сильное колдунство

Andrey
19.09.2016
15:00:09
не хочу колдовать итак уже есть захаканые distutils.filelist.findall, лучше меньше грязи чем больше=)

Zart
19.09.2016
15:00:19
у
чтото я уже не хочу знать, какой еще херней вы там страдаете 8)

Andrey
19.09.2016
15:00:42
да
я тоже

Serge
19.09.2016
15:12:25

Andrey
19.09.2016
15:13:30
мне она нужна не только в процессе билда
в рантайме тоже

Roman
19.09.2016
15:16:02
Слушай, чего это requests такая ппц медленная в http put?

Andrey
19.09.2016
15:18:02
ты уверен что не общение с dns тормозит?

Roman
19.09.2016
15:20:33