如何在pyenv中设置环境变量?

7
我正在使用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)

问题在于,虽然使用export MY_ENV_VAR=test设置了MY_ENV_VAR的值(可以使用 echo $MY_ENV_VAR来显示其内容),但是Python代码没有读取到任何值。

那么应该如何正确地实现呢?


1
你能比较 echo $MY_ENV_VARpython -c "import os; print(os.environ.get('MY_ENV_VAR'))" 两者输出的结果是否都为 "test" 吗? - phd
@jasdhfiu-asef-aesf-asef-a-sgaa 没有,它应该做什么?我不使用pipenv。难道你的意思是pyenv shell吗?这将会显示“未配置特定于shell的版本”。@phd 回显变量会返回它的真实内容,在Python中像这样打印会输出“None”。 - T.Poe
1个回答

0
你使用的是哪个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



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接