【问题标题】:How to set environment variables in pyenv?如何在pyenv中设置环境变量?
【发布时间】:2018-11-05 02:01:55
【问题描述】:

我正在使用pyenv。使用以下命令创建环境:

pyenv install 3.6.0
pyenv virtualenv 3.6.0 foo
pyenv local foo

python my_app.py

在应用程序中我想用这个命令加载一些环境变量:

SOME_VARIABLE = environ.get('MY_ENV_VAR', None)

问题是,虽然MY_ENV_VAR 设置为export MY_ENV_VAR=test(我可以使用echo $MY_ENV_VAR 显示其内容),但python 代码读取没有任何值。

那么如何才能正确地做到这一点呢?

【问题讨论】:

  • 你能比较一下echo $MY_ENV_VARpython -c "import os; print(os.environ.get('MY_ENV_VAR'))";都打印“测试”吗?
  • @jasdhfiu-asef-aesf-asef-a-sgaa 不,我没有,应该怎么办?我不使用 pipenv。你不是说pyenv shell吗?这给出了“没有配置特定于 shell 的版本”。 @phd 回显变量返回其真实内容,在 python 中将其打印出来,就像这样打印“None”。

标签: python linux virtualenv pyenv


【解决方案1】:

您使用的是什么 IDE/编辑器?我猜这个变量没有添加到同一个环境中。

如果您使用 vscode 之类的代码编辑器,您需要激活环境,然后从同一个终端将变量添加到环境中,然后运行脚本。

# my_app.py
from os import environ

SOME_VARIABLE2 = environ.get('MY_ENV_VAR',None)
print(SOME_VARIABLE2)

SOME_VARIABLE = environ['MY_ENV_VAR']
print(SOME_VARIABLE)
# vscode terminal

test on main [?] via ? v3.8.6 (foo) 
❯source foo/bin/activate
❯export MY_ENV_VAR=test
❯ python my_app.py         
test
test


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-20
    • 2019-07-02
    • 2014-09-29
    • 2016-06-27
    • 2012-08-03
    • 2017-07-31
    • 2015-08-01
    相关资源
    最近更新 更多