是否可以在“ Pipfile”的“包”部分中使用“ .env”中的环境变量

时间:2019-04-08 11:11:49

标签: environment-variables pipenv

我必须使用有限的凭据才能从专用存储库安装我的软件包,但我不希望将它们与我的Pipile一起提交。

这是一个简单的合法用例:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
pytest = "*"

[packages]
my-package = {git = "https://${USER}:${TOKEN}@bitbucket.org/my-team/my-package.git",ref = "v0.1"}

[requires]
python_version = "3.7"

[scripts]
show-credentials = "echo ${USER}:${TOKEN}"

并在.env文件中包含以下内容:

USER=foo
TOKEN=bar

执行pipenv run show-credentials会将当前凭据显示为foo:bar,但是在安装my-package时将不遵守这些环境变量。

有没有可能的解决方法,或者对pipenv的要求很好?

1 个答案:

答案 0 :(得分:1)

从文档中不清楚,但是从测试中可以看出。仅在pipenv runpipenv shell期间读取.env。它不在pipenv syncpipenv install期间运行。

之所以这样说,是因为除非将环境变量设置在虚拟环境之外,即USER=my_user TOKEN=my_token pipenv install

,否则它似乎不会注入到[[source]]节中。