设置 Windows 环境变量时 Python os.getenv() 返回 None

问题描述 投票:0回答:5

我正在学习使用 Twippy 库和 Twitter API 的 Twitter 机器人教程:https://realpython.com/twitter-bot-python-tweepy/

我设置了 config.py 文件,并将 Windows 环境变量设置为带有所有令牌的用户变量。但是当我运行我的文件时,它会给出一个错误,因为检索我的令牌时 os.getenv() 是 None

consumer_key = os.getenv("CONSUMER_KEY")
consumer_secret = os.getenv("CONSUMER_SECRET")
access_token = os.getenv("ACCESS_TOKEN")
access_token_secret = os.getenv("ACCESS_TOKEN_SECRET")

在 Windows 终端中,我打印了每个变量,它们是正确的。我在这里缺少什么吗?非常感谢任何帮助!

python environment-variables tweepy twitterapi-python
5个回答
6
投票

因此,这是一个问题,因为从另一个进程派生的进程会继承其环境变量集。在这种情况下,需要重新启动正在使用的启动代码的 IDE。 VS Code 的另一种选择是使用指定的环境启动项目。这可以通过将 env 选项添加到启动配置来完成:

   {
        "name": "Python: Current File (Integrated Terminal)",
        "type": "python",
        "request": "launch",
        "program": "${file}",
        "console": "integratedTerminal"
        "env": {"VAR_NAME": "VAR_VALUE"
                "VAR_NAME2": "VAR_VALUE2"}
    },

在本例中,VAR_NAME 和 VAR_NAME2 是环境变量名称。 VAR_VALUE 和 VAR_VALUE2 将是分配给它们的字符串。


5
投票

如果

os.getenv()
不起作用,您可以使用解耦。只需执行
pip install python-decouple
,然后在代码中执行
from decouple import config
,然后您就可以执行以下操作:

consumer_key = config('CONSUMER_KEY')
consumer_secret = config('CONSUMER_SECRET')
access_token = config('ACCESS_TOKEN')
access_token_secret = config('ACCESS_TOKEN_SECRET')

这对我来说很有效。希望它也适用于您的情况。


3
投票

纽比在这里。我重启了VSCode,还是不行。直到我重新启动 VSCode,并关闭项目文件夹,然后重新打开它。

从中学习https://youtu.be/M576WGiDBdQ?t=14649


0
投票

我遇到了完全相同的问题,重新启动计算机解决了问题


0
投票

对于大多数IDE,设置新的环境变量后需要重新启动(在Windows操作系统中)

© www.soinside.com 2019 - 2024. All rights reserved.