1

我是 pipenv 的新手,所以这里可能有些我不理解的东西。但是,似乎创建的虚拟环境取决于当前目录,这对我来说似乎很糟糕。

这是我所做的:

  1. 从 Github 签出已经有 Pipfile 和 Pipfile.lock 的代码

  2. 做了一些不相关的事情......此时我在一个名为 /home/user/me/miniconda3/bin/ 的目录中

  3. 跑 /home/user/me/miniconda3/bin/pipenv 运行 python /home/user/me/my-script-dir/my-script.py

  4. 这导致 Pipenv 创建了一个虚拟环境。输出:

    为这个项目创建一个 virtualenv... 使用 /home/user/me/miniconda3/bin/python (3.6.4) 创建 virtualenv... 已经使用解释器 /home/user/me/miniconda3/bin/python 使用基本前缀 ' /home/user/me/miniconda3' /home/user/me/.local/share/virtualenvs/bin-YnM8YhRk/bin/python 中的新 python 可执行文件安装 setuptools、pip、wheel...完成。

    Virtualenv 位置:/home/user/me/.local/share/virtualenvs/bin-YnM8YhRk 为这个项目创建一个 Pipfile...</p>

  5. 然后我意识到我需要运行pipenv install,所以这次我 cd'd 到实际存储脚本的目录/home/user/me/my-script-dir/,然后运行/home/user/me/miniconda3/bin/pipenv install。然后我得到了这个输出:

    为这个项目创建一个 virtualenv... 使用 /home/user/me/miniconda3/bin/python (3.6.4) 创建 virtualenv... 已经使用解释器 /home/user/me/miniconda3/bin/python 使用基本前缀 '/home /user/me/miniconda3' /home/user/me/.local/share/virtualenvs/my-script-dir-Ex37BY7g/bin/python 中的新 python 可执行文件安装 setuptools、pip、wheel...完成。

    Virtualenv 位置:/home/user/me/.local/share/virtualenvs/my-script-dir-Ex37BY7g 从 Pipfile.lock (6c24e4) 安装依赖项...</p>

如您所见,我实际上每次都运行相同的脚本,但不知何故,它创建了两个不同的虚拟环境。并且虚拟环境是以我当时的当前目录命名的,而不是脚本的目录。除非我遗漏了什么,否则这似乎非常笨拙。

4

1 回答 1

1

你是对的,pipenv 使用的 virtualenv 确实取决于当前目录。

于 2018-05-03T22:45:54.160 回答