The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз Cython 0.15, варианта языка Python, поддерживающего пл..., opennews (ok), 12-Авг-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


43. "Релиз Cython 0.15, варианта языка Python, поддерживающего пл..."  –1 +/
Сообщение от Andrew Kolchoogin (?), 14-Авг-11, 01:45 
Тут прозвучала где-то верная мысль, что хранение Питоновского байткода рядом с скриптом модуля -- это подход либо виндозника, либо "админа локалхоста".

Просто на реальной многопользовательской системе в этом случае пользоваться скомпилированным байткодом _в некоторых случаях_ становится просто невозможно, и вот почему.

Представьте себе группу программистов, работающих над проектом на Питоне. Причём не над проектом "для сдачи заказчику", а над проектом "для себя", к примеру, это учёные, которые пишут софтину для обработки относительно своих математических моделей данных, получаемых с ЯМР-спектрометра фирмы "Хренов и Огурцов".
Стоит в лаборатории числодробилка, на которой нежными руками сисадмина собран numpy, слинкованный с Атласом -- вся математика будет обрабатываться с охрененной скоростью оптимизированного кода на Фортране, а интерфейс может и потормозить, зато среднему учёному изучить скриптовый Питон куда проще, чем тот же самый Фортран или C. Также среднему учёному наплевать на всякие там SCM'ы и проч.: он логинится в Юникс и своим любимым текстовым редактором правит свой любимый исходник на Питоне.

Разумеется, что лежит это всё в ${PREFIX}/lib/python${PYTHON_VER}/site_packages, где ему и положено, ибо где ему ещё лежать -- над проектом работают несколько человек, один пишет "разгребатор" данных, приходящих с ЯМР-гроба, другой -- математику, третий -- интерфейс.

А теперь, внимание, вопрос: какие права должна иметь директория site_packages, и кому она должна принадлежать, чтобы Питон смог прекомпилировать все модули, которые пишутся этими тремя людьми? И при этом сам системный администратор вдруг случайно не обнаружил, что из-за того, что математик, задумавшись, не сказал 'rm -R' не в той директории, ни одного из стапицоттыщ Питоновских модулей, установленных в системе, больше нет?

Если в моём рассуждении заменить слово "Питон" на слова "Перл версии 5.12 или старше", то ситуация становится вполне понятной: весь код должен лежать в групповой директории, доступной этим троим на запись, а вначале главного файла нужно в '@INC' запихнуть путь к ней -- Перл поддерживает run-time @INC customisation, если его правильно собрать.

Но Питон, насколько мне известно, не поддерживает. Как быть?

Ответить | Правка | Наверх | Cообщить модератору

44. "Релиз Cython 0.15, варианта языка Python, поддерживающего пл..."  +/
Сообщение от Аноним (-), 14-Авг-11, 02:24 
Начнём с того, что когда я работал МНСом, учёные за 40 с удовольствием осваивали SVN и с радостью говорили "Во, такой-то штуки нам и не хватало!" Может, у вас что-то в консерватории не так?

Ну и сама мысль коллективно править исходники в одной общей помойке, как минимум, удивляет. Общая помойка - это безответственность и верная потеря данных в самый неподходящий момент. Но если оче хочется отстрелить себе ногу, то для вас ешё в XX веке придумали umask и setgid на каталоги, ну и POSIX ACL, это если хочется отстрелить ногу сразу по шею. Удачи.

И про run-time @INC customisation тоже непонятно. Вы мануал по Питону читали?  Вот, http://docs.python.org/library/sys.html#sys.path и http://docs.python.org/using/cmdline.html#envvar-PYTHONPATH, прочтите, это бесплатно.

Ответить | Правка | Наверх | Cообщить модератору

45. "Релиз Cython 0.15, варианта языка Python, поддерживающего пл..."  –2 +/
Сообщение от langer (?), 14-Авг-11, 05:06 
С правами доступа, конечно, товарищ загнул.
Описанные им проблемы нужно решать методом контроля версий, и никакие ACL даже не нужны (потому как мнутри систем контроля версий и так есть ACL).

Проблема с бинарниками Питона проще (но не меньше от этого).
В рантайм-каталогах лежит продублированный код, идентичный по функционалу и разный по формату. И все это только ради более быстрой загрузки с одинаковой скоростью работы.

Это не UNIX-way и вообще глупое решение.
Может это исправят в альтернативных реализациях?

Ответить | Правка | Наверх | Cообщить модератору

46. "Релиз Cython 0.15, варианта языка Python, поддерживающего пл..."  –1 +/
Сообщение от Andrew Kolchoogin (?), 14-Авг-11, 11:51 
Я не буду вдаваться в дискуссии, где, кто и что с удовольствием осваивал.

А вот что касается прав доступа: ну-ка, расскажите-ка мне, каким образом я должен выставить umask и _любые_ биты в директории, чтобы более одного человека могли удалять такие-то и такие-то файлы, но не могли удалять другие? Перекомпиляция .pyc'шки -- это создание темпорарника и link()/unlink(), иначе пара копий Питона, попытающаяся перекомпилировать один и тот же модуль, накомпилирует чёрт-те что. Sticky не поможет, из очевидных соображений.

POSIX ACL? А что это? Или вы про драфт, который так и не стал стандартом, и пару лет назад заэкспайрился?

(Я даже не буду троллить на тему setgid на директории тупым вопросом "а что он делает" -- в BSD-системах setgid на директориях, как известно, игнорируется, а файлы _всегда_ создаются с той группой, которой директория принадлежит).

А про @INC и sys.path -- нет, не читал, поэтому честно и спросил в последнем предложении своего поста, умеет ли так же Питон.

А самое смешное -- что в современном Юниксе есть вполне себе разумное место для хранения кэшей -- ~/.cache. Раньше его не было, но и KDE, и GNOME умели кэшировать всё в /tmp/kdecache-${USER}/ и /tmp/orbit-${USER}/. То есть, проблему-то можно решить в корне и в UNIX-стиле.

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру