如何在运行Spacy项目命令时传递环境变量至Python脚本?
问题:如何在spaCy项目运行命令时传递环境变量?
我有一个spaCy项目,其命令配置片段如下:
commands: - name: "get-models" help: "Downloads trained models from s3." script: - "python scripts/get_models.py" deps: - "scripts/get_models.py"
我的get_models.py脚本需要S3_ACCESS_KEY和S3_SECRET_KEY这两个环境变量,并通过os.getenv('S3_ACCESS_KEY')和os.getenv('S3_SECRET_KEY')分别读取它们。请问在运行python -m spacy project run get-models命令时,如何将这些环境变量传递给该脚本?
解决方法
方法1:命令行临时传递
直接在运行命令前前置环境变量,仅对当前命令生效:
S3_ACCESS_KEY=你的密钥ID S3_SECRET_KEY=你的密钥密码 python -m spacy project run get-models
方法2:当前Shell会话全局生效
先在Shell中导出环境变量,之后当前会话内运行的所有命令都能访问这些变量:
export S3_ACCESS_KEY=你的密钥ID export S3_SECRET_KEY=你的密钥密码 python -m spacy project run get-models
方法3:使用.env文件(需额外配置)
如果希望环境变量持久化且不用每次手动输入,可以创建.env文件:
S3_ACCESS_KEY=你的密钥ID S3_SECRET_KEY=你的密钥密码
然后修改get_models.py开头添加加载代码:
from dotenv import load_dotenv load_dotenv()
运行命令前确保已安装依赖:
pip install python-dotenv python -m spacy project run get-models
内容的提问来源于stack exchange,提问作者ryuzakinho
相关产品推荐
相关产品推荐

