Profile

coolwolf0: (Default)
coolwolf0

January 2026

S M T W T F S
     123
45678910
11121314151617
18192021222324
252627 28293031

Custom Text

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

Итак, я пол-дня про%%%ался с простенькой задачкой: проинсталлировать на виндовом хосте некий Пайтон-package и при этом не задеть настройки PYTHONPATH на уровне пользователя. Для читателей, программирующих под нормальными системами объясню: СЯУ, что в винде есть три уровня переменных окружения. Есть уровень программы (ну типа шелла), есть пользовательский и есть системный. Красиво, да? Логично, правда ведь? Это я пока без сарказма. То есть в плане глобальной архитектуры кто-то подумал и выдал правильное предложение. Что же мы имеем с точки зрения программиста? Оказывается, переменные уровня "пользователь" и "система" хранятся в регистри. Ну ладно, пока что тоже логично. И вот тут выпрыгивает испанская инквизиция: программисту предоставлена возможность установить значение переменной, но он не может удалить переменную из адресного пространства "пользователь" или "система". Точнее, он должен это сделать как в пошлом анекдоте про гинеколога. Если значение переменной задается элегантным оператором SETX <переменная> <значение>, то удаление переменной надо делать вызовом редактора регистри (концовку фразы надо говорить с интонацией Семена Графмана "шееева шееекель, б%%ть"). Вы думаете, что удалив что-то, Винда просто выполнила требуемую операцию? Зайин (то есть "херушки")! В форумах люди пишут, что для завершения процедуры очистки надо ... (вы не поверите) перезагрузить систему! Чтоб они всем Майкрософтом так в лифте ехали, перезагружая его после каждого выбора этажа (нецензурная брань на разных языках).

Я вообще всегда подозревал, что у майкрософта не очень доброе отношение к сторонним программистам, но такого иезуитского дебилизма не мог себе представить.

(no subject)

Date: 2019-04-16 04:41 pm (UTC)
From: [identity profile] the-drmad.livejournal.com
> В форумах люди пишут, что для завершения процедуры очистки надо ... (вы не поверите) перезагрузить систему!

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

(no subject)

Date: 2019-04-17 06:46 am (UTC)
From: [identity profile] the-drmad.livejournal.com
Уточни проблему. Вроде бы с переменными можно делать очень много чего, главное помнить, что дочернее приложение наследует среду у родителя. Если запуск через иконку, то родитель Иксплорер. Если вручную, то соответственно, CMD. Можно вообще индивидуального родителя сделать и менять в этом родителе для ребенка переменные как угодно.

Expand Cut Tags

No cut tags

Style Credit