【问题标题】:How do I set environment variables in pipenv?如何在 pipenv 中设置环境变量?
【发布时间】:2018-12-16 01:15:19
【问题描述】:

我需要为我在 pipenv 中运行的 python 项目设置一些访问令牌环境变量。每次启动 pipenv 时,我都想设置这些环境变量。

我该怎么做?

【问题讨论】:

    标签: python pipenv


    【解决方案1】:

    如果你想在每次启动项目时自动加载一些环境变量,你可以在项目的根文件夹,在Pipfile旁边设置一个.env文件。见Automatic Loading of .env

    您可以从正确的文件夹中运行以下命令来创建这个 .env 文件:

    echo MY_TOKEN=SuperToKen >.env  # create the file and write into
    echo MY_VAR=SuperVar >>.env     # append to the file
    

    或者只是手动创建它以获得:

    MY_TOKEN=SuperToKen
    MY_VAR=SuperVar
    

    该文件将自动加载pipenv shellpipenv run your_command 并且环境变量将可用。

    您可以在代码中访问/检查它们:

    print(os.getenv('MY_TOKEN', 'Token Not found'))
    

    不确定其他 IDE,但在 Pycharm 中,您需要插件 Env File 来自动加载它(从 Run/Debug 配置访问 Env File 选项卡)。


    您可以在此文件中添加 cmets,前导 #

    # My test token
    MY_TOKEN=SuperToKen
    

    注意:当然你必须从你的版本控制中排除这个文件(比如 git)。

    【讨论】:

    • 只是好奇:退出 pipenv 管理的环境时是否可以取消设置环境变量?作为记录,我正在使用 virtualenvwrapper 中的 postactivate/postdeactivate 来做到这一点。
    • @GeorgesMartin 不确定您需要什么,当您退出虚拟环境时,变量不再可用
    • 确实...我忘了 pipenv 会启动一个新的 shell——virtualenv 没有
    • pipenv run 抛出错误,但 pipenv shell 工作正常!
    • @bro-grammer, pipenv run 期望在您的环境中启动一个命令,例如 pipenv run flask run
    猜你喜欢
    • 2021-02-20
    • 2019-07-02
    • 2014-09-29
    • 2016-06-27
    • 2012-08-03
    • 2017-07-31
    • 2015-08-01
    • 2011-08-23
    相关资源
    最近更新 更多