pycharm指定运行环境_python – Pycharm:设置环境变量,用于运行manage.py Task

  • Post author:
  • Post category:python


因为Pycharm不是从终端启动,您的环境将不会被加载。简而言之,任何GUI程序都不会继承SHELL变量。参见

this的原因(假设是Mac)。

然而,这个问题有几个基本的解决方案。如@user3228589所示,您可以将其设置为PyCharm中的变量。这有几个利弊。我个人不喜欢这种方法,因为它不是一个单一的来源。为了解决这个问题,我使用我的settings.py文件的顶部的一个小功能来查找本地.env文件中的变量。我把我所有的“私人”东西放在那里。我也可以在我的virtualenv中引用这个。

这是它的样子。

– settings.py

def get_env_variable(var_name, default=False):

“””

Get the environment variable or return exception

:param var_name: Environment Variable to lookup

“””

try:

return os.environ[var_name]

except KeyError:

import StringIO

import ConfigParser

env_file = os.environ.get(‘PROJECT_ENV_FILE’, SITE_ROOT + “/.env”)

try:

config = StringIO.StringIO()

config.write(“[DATA]\n”)

config.write(open(env_file).read())

config.seek(0, os.SEEK_SET)

cp = ConfigParser.ConfigParser()

cp.readfp(config)

value = dict(cp.items(‘DATA’))[var_name.lower()]

if value.startswith(‘”‘) and value.endswith(‘”‘):

value = value[1:-1]

elif value.startswith(“‘”) and value.endswith(“‘”):

value = value[1:-1]

os.environ.setdefault(var_name, value)

return value

except (KeyError, IOError):

if default is not False:

return default

from django.core.exceptions import ImproperlyConfigured

error_msg = “Either set the env variable ‘{var}’ or place it in your ” \

“{env_file} file as ‘{var} = VALUE'”

raise ImproperlyConfigured(error_msg.format(var=var_name, env_file=env_file))

# Make this unique, and don’t share it with anybody.

SECRET_KEY = get_env_variable(‘SECRET_KEY’)

然后env文件看起来像这样..

#!/bin/sh

#

# This should normally be placed in the ${SITE_ROOT}/.env

#

# DEPLOYMENT DO NOT MODIFY THESE..

SECRET_KEY=’XXXSECRETKEY’

最后,您的virtualenv / bin / postactivate可以源文件。您可以进一步输出变量,如here所示,但是由于设置文件直接调用.env,所以不是真的需要。



版权声明:本文为weixin_35955473原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。