2016-04-14 2 views
0

У меня есть очень простая проблема с установкой моего Python 3.4 на MAC OSX 10.11.4. Я установил PYTHONPATH в свой .bash_profile, и пути обнаруживаются при запуске python с терминала, и если я импортирую sys и проверяю sys.path в терминале, я вижу ожидаемые пути.PYTHONPATH не работает с IDLE на Mac OSX

Однако, когда я загружаю IDLE и просматриваю браузер путей, записи PYTHONPATH не находятся в sys.path, и мой код не запускается. Есть несколько сообщений, которые говорят о добавлении кода для добавления в sys.path в IDLE, но это хак, который я не хочу делать. Как я могу получить IDLE для чтения записей PYTHONPATH в sys.path?

Дополнительная информация: В Windows я настроил среду PYTHONPATH varaiable, и пути, как и ожидалось, отображаются в браузере путей.

Это основная проблема с IDLE на OSX, или, возможно, у меня что-то испортилось в установке, или?

+1

Вы используете IDLE с Launchpad? Он не будет наследовать переменные окружения, заданные в .bash_profile, если вы не запустите его из bash. – cdarke

+0

Спасибо, что отвечает на мой вопрос. Я бежал, щелкнув значок IDLE. Бегу от баша, я действительно вижу пути. –

+0

См. Также http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x – cdarke

ответ

0

Причина этого поведения в том, что у вас разные области переменных среды. Переменные, которые вы установили в .bash_profile, будут загружены только в том случае, если вы начнете новый сеанс bash, открыв терминал. Но когда вы открываете IDLE, нажимая на нее, у вас есть другой набор переменных среды. Именно по этой причине он работает, когда вы вызываете IDLE через терминал. Таким образом, все переменные окружения передаются в процесс, который вы запускаете.

Существует, по крайней мере, два решения:

  1. Всегда открывать IDLE от терминала изменения
  2. переменных сред для всех приложений, которые запускаются с помощью графического интерфейса. Это можно сделать, отредактировав /etc/launchhd.conf (в Ubuntu вы должны изменить ~/.profile). Посмотрите here. Но если я правильно помню, это не работает для открытия приложений через центр внимания.
Смежные вопросы