Python 环境变量don';不要在PyCharm中工作,以便在Tweepy中使用

Python 环境变量don';不要在PyCharm中工作,以便在Tweepy中使用,python,pycharm,environment-variables,Python,Pycharm,Environment Variables,我无法检索环境变量 我尝试了Tweepy文档中没有环境变量的一个示例代码片段,它正常工作。我直接在代码中定义了所需的变量 然后我为consumer\u key、consumer\u secret、access\u token和access\u token\u secret定义了4个环境变量,但它不再起作用。让我感到奇怪的是,我可以访问环境变量,例如使用print(os.environ['TWITTER\u CONSUMER\u KEY'),并且输出是正确的 钥匙上没有任何打字错误。我仔细检查了一

我无法检索环境变量

我尝试了
Tweepy
文档中没有环境变量的一个示例代码片段,它正常工作。我直接在代码中定义了所需的变量

然后我为
consumer\u key、consumer\u secret、access\u token和access\u token\u secret
定义了4个环境变量,但它不再起作用。让我感到奇怪的是,我可以访问环境变量,例如使用
print(os.environ['TWITTER\u CONSUMER\u KEY')
,并且输出是正确的

钥匙上没有任何打字错误。我仔细检查了一下

此代码适用于:

import tweepy

consumer_key = 'xyz'
consumer_secret = 'xyz'
access_token = 'xyz'
access_token_secret = 'xyz'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)
此代码不起作用:

import os
import tweepy

consumer_key = os.environ['TWITTER_CONSUMER_KEY']
consumer_secret = os.environ['TWITTER_CONSUMER_SECRET']
access_token = os.environ['TWITTER_ACCESS_TOKEN']
access_token_secret = os.environ['TWITTER_ACCESS_SECRET']

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)
我收到以下错误消息:

Traceback (most recent call last):   
File "[...]/testing.py", line 28, in <module>
   public_tweets = api.home_timeline()
File "[...]venv\lib\site-packages\tweepy\binder.py", line 250, in _call 
   return method.execute()
File "[...]\venv\lib\site-packages\tweepy\binder.py", line 234, in execute 
   raise TweepError(error_msg, resp, api_code=api_error_code) tweepy.error.TweepError: [{'code': 32, 'message': 'Could not authenticate you.'}]
回溯(最近一次呼叫最后一次):
文件“[…]/testing.py”,第28行,在
public_tweets=api.home_timeline()
文件“[…]venv\lib\site packages\tweepy\binder.py”,第250行,在调用中
返回方法execute()
文件“[…]\venv\lib\site packages\tweepy\binder.py”,执行中的第234行
raise TweepError(error_msg,resp,api_code=api_error_code)tweepy.error.TweepError:[{'code':32,'message':'无法对您进行身份验证。'}]

您需要上传dotenv库

from dotenv import load_dotenv
load_dotenv()

是否确定每个环境变量都已正确设置或读取?试着在你的代码或调试中打印它们,看看是否所有4个变量都设置好了…Hi Dinko。我仔细检查了变量。我打印了它们(全部4个),它们完全显示在env变量的右边。我不明白。如果我在代码中直接传递它们,它会工作,但如果我使用env变量,它不会工作。我从头开始了另一个项目,并在那里进行了测试。成功了。但是我想知道,第一个项目的问题是什么。帮不上忙。如果它们按照您所说的正确读取,则应该与上面的代码相同。除非以某种方式对其进行修改,否则该库不能帮助从jetbrain IDE定义环境变量。我假设您正在加载Python中的
.env
文件?问题不在哪里?