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

mis*_*ope 6 environment-variables pipenv

我必须使用有限的凭据才能从私有存储库安装我的软件包,但我不希望将它们与我的Pipile.

\n\n

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

\n\n
[[source]]\nname = "pypi"\nurl = "https://pypi.org/simple"\nverify_ssl = true\n\n[dev-packages]\npytest = "*"\n\n[packages]\nmy-package = {git = "https://${USER}:${TOKEN}@bitbucket.org/my-team/my-package.git",ref = "v0.1"}\n\n[requires]\npython_version = "3.7"\n\n[scripts]\nshow-credentials = "echo ${USER}:${TOKEN}"\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
USER=foo\nTOKEN=bar\n
Run Code Online (Sandbox Code Playgroud)\n\n

执行pipenv run show-credentials将显示当前凭据,foo:bar但不会\xe2\x80\x99 尊重这些环境变量来安装my-package.

\n\n

是否有任何可能的解决方法或者这可能是一个很好的功能请求pipenv

\n

dav*_*avy 5

文档中尚不清楚,但从测试看来 .env 仅在pipenv run和期间读取pipenv shell。它不在pipenv sync或期间运行pipenv install

我这么说是因为它似乎不会注入 [[source]] 部分,除非环境变量设置在虚拟环境之外......即USER=my_user TOKEN=my_token pipenv install