使用.env文件和Pipenv修改PYTHONPATH

时间:2018-12-28 15:29:45

标签: python zsh pythonpath pipenv

我正在尝试使用PYTHONPATH将项目目录添加到pipenv。根据{{​​3}}的提示,我创建了一个this post文件,以修改pipenv管理的virtualenv使用的路径。

我创建了.env文件(在/foo/bar/myProject中),如下所示:

PYTHONPATH=${PYTHONPATH}:${PWD}

但是当我激活virtualenv时,这是新路径:

$ python -c "import sys; print(sys.path)"
['', '/foo/bar/${PYTHONPATH}', '/foo/bar/${PWD}', '/foo/bar/myProject',...]

它将/foo/bar/myProject正确添加到PYTHONPATH中。但是,看起来它还会添加两个带有未替换的环境变量的额外条目。

为什么会发生这种情况,如何避免这种情况?

注意:我正在使用Z shell(可能没关系)。

1 个答案:

答案 0 :(得分:1)

您的外壳中可能没有设置$PYTHONPATH变量,因此pipenv${PYTHONPATH}文件中的值(即{{1 }})。然后.env成功展开,为您提供最终值${PYTHONPATH}:${PWD}。这导致看起来很${PWD}很奇怪。您可以通过从值中省略PYTHONPATH=${PYTHONPATH}:${PWD}:/foo/bar/myProject来解决此问题:

sys.path

或在运行${PYTHONPATH}之前将其设置为某个值:

PYTHONPATH=${PWD}

经过pipenv版本2018.11.26的测试。