【问题标题】:Environment variables don't work in PyCharm for using in Tweepy环境变量在 PyCharm 中无法在 Tweepy 中使用
【发布时间】:2019-06-20 14:28:10
【问题描述】:

我无法检索环境变量。

我尝试了Tweepy 文档中没有环境变量的示例代码 sn-p,它可以正常工作。我直接在代码中定义了需要的变量。

然后我为consumer_key, consumer_secret, access_token and access_token_secret 定义了 4 个环境变量,但它不再起作用了。让我感到奇怪的是,我可以使用 print(os.environ['TWITTER_CONSUMER_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.'}]

【问题讨论】:

  • 您确定每个环境变量都设置或读取正确吗?尝试将它们全部打印在您的代码或调试中,看看是否设置了所有 4 个变量...
  • 嗨丁科。我仔细检查了变量。我打印了它们(全部 4 个),它们完全显示在 env 变量之外。我不明白。如果我直接在代码中传递它们,它可以工作,但如果我使用 env 变量则不会。我从头开始另一个项目并在那里测试它。有效。但我想知道,第一个项目有什么问题。
  • 帮不上忙。如果按照您所说的正确阅读它们,则应该与上面的代码相同。除非他们以某种方式被修改......

标签: python pycharm environment-variables


【解决方案1】:

你需要上传dotenv库

from dotenv import load_dotenv
load_dotenv()

【讨论】:

  • 这个库不能帮助从 jetbrain ide 定义环境变量。我假设您正在 Python 中加载 .env 文件?问题在哪里?
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 2022-08-12
  • 2017-07-31
  • 1970-01-01
  • 2017-06-07
  • 2013-12-02
  • 1970-01-01
相关资源
最近更新 更多