如何与pipenv共享虚拟环境?

时间:2018-02-13 18:06:57

标签: python pipenv

Pipenv虚拟环境( venv )将与子文件夹共享。 例如,如果您在~/foo/中安装了 venv ,则可以在~/foo/baz/

中访问它

但是,如果您想在~/foo/bob/~/baz/alice/之间共享相同的 venv 会怎样?

以下类型对我有用。我希望它可以提供帮助。

2 个答案:

答案 0 :(得分:2)

与pipenv分享virutal env 创建一个目录〜/ foo / bob /

mkdir -p ~/foo/bob/ ; cd ~/foo/bob/        

在〜/ foo / bob /

中创建虚拟环境
pipenv --three

这将创建~/.local/share/virtualenvs/bob-signature/

安装您需要的任何软件包。例如

pipenv install jupyter

这将在~/foo/bob/

中创建一个Pipfile.lock

创建另一个目录,比如~/baz/alice/并在那里创建一个 venv

mkdir -p ~/baz/alice ; cd ~/baz/alice/ ;  pipenv --three 

与以前一样,pipenv将在alice-signature/中创建~/.local/share/virtualenvs/。 删除该文件夹并将其替换为 bob-signature

的链接
cd ~/.local/share/virtualenvs/
rm -r alice-signature/
ln -s bob-signature/ alice-signature

~/baz/alice/中,将 Pipfile Pipfile.lock 链接到~/baz/bob/

中的

cd ~/baz/alice/ ;
rm Pipfile ; rm Pipfile.lock
ln -s ~/foo/bob/Pipfile . ;  ln -s ~/foo/bob/Pipfile.lock  .  

现在,您应该可以从 alice / bob / 访问 venv ,并且将共享从这些目录中安装的软件包

答案 1 :(得分:1)

pipenv中有一个未记录的功能:如果您在项目根目录中创建一个名为.venv的文件,并带有指向virtualenv的路径,则pipenv将使用该文件而不是自动生成的路径。

(您仍然需要保持PipfilePipfile.lock的同步。按照@MalikKoné的建议,使它们成为符号链接,但如果Pipfile受版本控制,则不需要如他们所愿。)

但这是is more fit for cases when you already have an established set of environments that you wish to reuse。否则,将环境放置在任意位置最终会造成混乱。