问题描述
我正在关注使用Twippy库和Twitter API的Twitter机器人教程:https://realpython.com/twitter-bot-python-tweepy/
我设置了config.py文件,并将Windows环境变量设置为带有所有令牌的用户变量。但是,当我运行文件时,由于os.getenv()检索令牌时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终端中,我打印了每个变量,它们是正确的。我在这里缺少什么吗?任何帮助深表感谢!
解决方法
如果 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')
这在我的情况下有效。希望它也适用于您的情况。
,所以这是一个事实,即从另一个进程派生的进程会继承其环境变量集。在这种情况下,正在启动代码的使用中的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将是分配给它们的字符串。