Как я вношу изменения переменной среды всунуть Python?

Версия 23.1.0 переключает NavigationView на использование RecyclerView (вместо предыдущего ListView), и заголовок добавляется как один из этих элементов. Это означает, что не всегда доступно для вызова findViewById() - требуется передать макет перед его присоединением к NavigationView.

Для версии 23.1.1 поддержки Library, теперь вы можете получить ссылку на представление заголовка с помощью getHeaderView():

View headerLayout = navigationView.getHeaderView(0); // 0-index header

. Это имеет преимущество в работе над заголовками, добавленными через XML и через код.

Если вы по-прежнему используете 23.1.0, в соответствии с связанной ошибкой , вы можете раздуть заголовок в коде и использовать findViewById() на этом:

View headerLayout = 
    navigationView.inflateHeaderView(R.layout.navigation_header);
panel = headerLayout.findViewById(R.id.viewId);
// panel won't be null

Пока вы не перейдете на 23.1.1.

19
задан Soviut 30 January 2009 в 03:07
поделиться

8 ответов

В соответствии с Windows для Вас возможно делать изменения в переменные среды персистентными с помощью реестра с этот рецепт , хотя это походит на излишество.

Для повторения вопроса Brian, что Вы пытаетесь выполнить? Существует, вероятно, более легкий путь.

6
ответ дан 30 November 2019 в 03:25
поделиться

заставляют их остаться верным передаче их к системе?

я думаю, что Вы немного смущены здесь. Нет никакой 'системной' среды. Каждый процесс имеет их собственную среду, как разделяют ее память. Процесс может только изменить свою собственную среду. Процесс может установить начальную среду для процессов, которые это создает.

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

9
ответ дан 30 November 2019 в 03:25
поделиться

Я не полагаю, что можно сделать это; существует два обходных решения, о которых я могу думать.

  1. os.putenv функция устанавливает среду для процессов, которые Вы запускаете с, т.е. os.system, popen, и т.д. В зависимости от того, что Вы пытаетесь сделать, возможно, у Вас мог быть один экземпляр ведущего устройства Python, который устанавливает переменную и затем порождает новые экземпляры.

  2. Вы могли выполнить сценарий оболочки или пакетный файл для установки его для Вас, но это становится намного менее портативным. См. эту статью:

http://code.activestate.com/recipes/159462/

5
ответ дан 30 November 2019 в 03:25
поделиться

Согласно это обсуждение , Вы не можете сделать этого. Что Вы пытаетесь выполнить?

3
ответ дан 30 November 2019 в 03:25
поделиться

Думайте об этом этот путь.

Вы не устанавливаете переменные среды оболочки.

Вы порождаете подоболочку с некоторыми данными настройками переменной среды; эта подоболочка запускает Ваше приложение с измененной средой.

3
ответ дан 30 November 2019 в 03:25
поделиться

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

2
ответ дан 30 November 2019 в 03:25
поделиться

Вы могли бы хотеть попробовать Расширения Python Win32 , разработанный Mark Hammond, который включен в ActivePython (или может быть установлен отдельно). Можно изучить, как выполнить много связанных с Windows задач в книга .

Hammond и Robinson Используя PyWin32 для доступа к окнам COM-объекты , программа Python может использовать Свойство Среды (набор переменных среды) эти WScript.Shell объект.

1
ответ дан 30 November 2019 в 03:25
поделиться

Из Python? Нет, это не может быть сделано!

, Если Вы не связываетесь с Python, необходимо рассмотреть использование сценариев оболочки (sh, удар, и т.д.). "Исходная" команда позволяет Вам запускать скрипт, который изменяет среду и будет "придерживаться" как Вы, хотят к оболочке, в которой Вы "получили" сценарий. Что продолжается, вот то, что оболочка выполняет сценарий, непосредственно довольно создающий подпроцесс для выполнения сценария.

Это будет довольно портативно - можно использовать cygwin на окнах, чтобы сделать это.

0
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: