PyCharm - автоматически устанавливает переменные среды
Я использую virtualenv, virtualenvwrapper и PyCharm.
У меня есть postactivate script, который запускает команду "export" для применения переменных среды, необходимых для каждого проекта, поэтому, когда я запускаю "workon X", переменные готовы для меня.
Однако при работе с PyCharm я не могу заставить их использовать эти переменные, запустив файл postactivate (в настройке "до запуска" ). Мне нужно вручную вводить каждую переменную среды в окне конфигурации Run/Debug.
Есть ли способ автоматически установить переменные среды в PyCharm? Или мне нужно сделать это вручную для каждого нового проекта и изменения переменных?
Спасибо.
Ответы
Ответ 1
У меня такая же проблема.
Попытка поддерживать переменные окружения через интерфейс - утомительная работа.
Кажется, что pycharm загружает только переменные env через bash_profile один раз при запуске.
После этого любой экспорт или попытка выполнить перед заданием для изменения файла bash_profile бесполезно
интересно, когда команда pycharm улучшит это
В моем случае мой обходной путь для удаленного интерпретатора работает лучше, чем локальный,
так как я могу изменить /etc/environment и перезагрузить vm
для локального интерпретатора, лучшее решение, которое я могу сделать, это:
1. Создайте шаблон шаблона Run/Debug config и клонируйте его
Если ваши переменные env являются стабильными, это простое решение для создания diff config с одинаковыми переменными env без повторного ввода их.
- создайте конфигурацию шаблона, введите необходимые переменные env.
- клонировать их
см. рисунок
2. Измените script
Возможно, добавьте некоторый код, используя os.environ [] = значение на вашем основном script
но я не хочу этого делать, он меняет код продукта и может быть случайно совершен.
Надеюсь, что кто-то может дать лучший ответ, я потратил слишком много времени на эту проблему...
Ответ 2
Я искал способ сделать это сегодня и наткнулся на другой вариант одного и того же вопроса (связанный ниже) и оставил мое решение там, хотя, похоже, это полезно для этого вопроса. Они обрабатывают загрузку переменных среды в самом коде.
Учитывая, что это в основном проблема во время разработки, я предпочитаю такой подход:
-
Откройте терминал
-
Предполагая, что virtualenvwrapper используется, активируйте virtualenv проекта, который приведет к запуску крючков и установит переменные среды (если вы их устанавливаете, скажем, с помощью такта postactivate)
-
Запустите PyCharm из этой командной строки.
Затем Pycharm будет иметь доступ к переменным среды. Вероятно, из-за того, что что-то связано с тем, что процесс PyCharm является дочерним элементом оболочки.
fooobar.com/questions/194992/...
Ответ 3
Другое решение для взлома, но простое, что для моих целей достаточно. Обратите внимание, что, хотя это характерно для Linux Ubuntu (и предположительно Mint), для Mac может быть что-то полезное.
То, что я делаю, это добавить строку к запуску script (pycharm.sh), который будет источником необходимых переменных среды (в моем случае я столкнулся с проблемами w/cx_Oracle в Pycharm, которые не влияли на другие скрипты, запущенные на командная строка). Если вы сохраните переменные среды в файле, например,.env_local, который находится в вашем домашнем каталоге, вы можете добавить следующую строку в pycharm.sh:
, $HOME/.env_local
Две важные вещи, которые следует отметить здесь, в отношении того, почему я специально использую '.' (а не "источник" ) и почему я использую "$ HOME", а не "~", что в bash эффективно взаимозаменяемо. 1) Я заметил, что pycharm.sh использует #!/Bin/sh, и я понял, что в Ubuntu sh теперь указывает на тире (а не bash). 2) тире, как выясняется, нет источника "встроенный", и он не будет разрешен в вашем домашнем каталоге.
Я также понимаю, что каждый раз, когда я обновляю PyCharm, мне придется модифицировать файл pycharm.sh, поэтому это не идеально. Все еще бьет, чтобы управлять конфигурациями запуска! Надеюсь, что это поможет.
Ответ 4
Хорошо, я нашел лучшее обходное решение!
1. Установите ткань в свой virtualenv
перейти на терминал и
1. workon ваше имя virtualenv
2. установочная ткань для труб
2. add fabric.py
добавьте файл python и назовите его "fabric.py" в корне вашего проекта, пройдите мимо кода ниже, и измените переменные пути на свой собственный
from fabric.api import *
import os
path_to_your_export_script = '/Users/freddyTan/workspace/test.sh'
# here is where you put your virtualenvwrapper environment export script
# could be .bash_profile or .bashrc depend on how you setup your vertualenvwrapper
path_to_your_bash_file = '/Users/freddyTan/.bash_profile'
def run_python(py_path, virtualenv_path):
# get virtualenv folder, parent of bin
virtualenv_path = os.path.dirname(virtualenv_path)
# get virtualenv name
virtualenv_name = os.path.basename(virtualenv_path)
with hide('running'), settings(warn_only=True):
with prefix('source %s' % path_to_your_export_script):
with prefix('source %s' % path_to_your_bash_file):
with prefix('workon %s' % virtualenv_name):
local('python %s' % py_path)
3. добавить внешний инструмент
перейти на сайт
предпочтение- > Внешние инструменты → нажмите кнопку добавления
и заполните следующую информацию
Name: whatever
Group: whatever
Program: "path to your virtualenv, should be under '$HOME/.virtualenvs' by default"/bin/fab
Parameter: run_python:py_path=$FilePath$,virtualenv_path=$PyInterpreterDirectory$
Working directory: $ProjectFileDir$
screenshot
wolla, запустите его
перейдите на свой main.py, щелкните правой кнопкой мыши, найдите внешнее имя (например, "все" ) и нажмите на него
вы также можете добавить ярлык для этого внешнего инструмента
скриншот
недостатки
это работает только на python 2.x, потому что ткань не поддерживает python 3