【问题标题】:Env variables not being used in vs code环境变量未在 vs 代码中使用
【发布时间】:2021-02-01 07:49:06
【问题描述】:

今天我刚开始使用 twitter 的 API,我通过直接在我的代码中写入我的密钥和令牌成功地发送了一条推文。当我想将它们用作环境变量但它不起作用时。

我尝试将它们添加到我的 .zshrc 文件中,例如:

export CONSUMER_KEY="mykey"

但它似乎没有找到它,然后我只是在我的终端中使用了完全相同的命令,也没有工作。

请注意,当我使用 env 命令时它会显示,但我的脚本不会使用它。

我尝试在我的代码中使用import os,但它似乎没有正确使用它们,但我可以通过将其复制/粘贴到打印函数中来打印它们。

这是我的代码:

import os
import tweepy

# Authenticate to Twitter
auth = tweepy.OAuthHandler(os.environ['CONSUMER_KEY'], os.environ['CONSUMER_SECRET'])
auth.set_access_token(os.environ['ACCESS_TOKEN'], os.environ['ACCESS_SECRET'])

# Create API object
api = tweepy.API(auth)

# Create a tweet
api.update_status("Hello World")

我想我已经在我的 Windows 计算机上修改了 settings.json 中的某些内容,但我现在无法访问它,但它可能只是我缺少能够使用该环境的命令行变量,但除此之外,有谁知道如何在 Linux 中正确使用环境变量,以及使用 VS Code 是否会以任何方式改变我对变量的使用。

【问题讨论】:

  • 您在进行这些更改之前是否启动了 VS 代码?它只能从其父进程继承变量,因此退出它并从您具有正确设置的终端重新启动就足够了。
  • 我关闭了 VS 代码,在我的目录中使用“code ./”启动它,但我仍然遇到问题。请注意,我正在使用“python scriptname.py”在终端中启动我的脚本,这会是一个问题,因为我不是从 VS 代码本身启动它吗?

标签: python linux visual-studio-code environment-variables


【解决方案1】:

你能做的是 安装 python dotenv pip install python-dotenv

pypi.org

创建一个不同的文件并将其命名为“.env” 并且在那个不带引号的地方写

CONSUMER_KEY=mykey

在你的主脚本中

from dotenv import load_dotenv
project_folder = os.path.expanduser('~/my-project-dir')
load_dotenv(os.path.join(project_folder, '.env'))

然后你就可以使用了

MY_KEY = os.getenv("MY_KEY")

你可以找到教程here.

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 2021-02-11
    • 2017-06-07
    • 2011-06-14
    • 1970-01-01
    • 2012-04-16
    • 2017-08-11
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多