Pipenv 虚拟环境 ( venv ) 将与子文件夹共享。因此,例如,如果您安装了一个venv in ~/foo/
,它将可以在~/foo/baz/
但是,如果您想在 and 之间共享相同的venv怎么办?~/foo/bob/
~/baz/alice/
以下类型对我有用。我希望它可以帮助。
有一个未记录的功能pipenv
:如果您创建一个.venv
在项目根目录中命名的文件,并带有指向 virtualenv 的路径,pipenv
则将使用该文件而不是自动生成的路径。
(您仍然需要保持Pipfile
's 和Pipfile.lock
s 同步。按照@MalikKoné 的建议使它们成为符号链接可能会这样做,但如果Pipfile
s 像他们应该的那样受版本控制,则不会。)
但是,这更适合您已经拥有一组希望重用的既定环境的情况。否则,将环境放置在任意位置最终很容易造成混乱。
与 pipenv 共享虚拟环境 创建目录 ~/foo/bob/
mkdir -p ~/foo/bob/ ; cd ~/foo/bob/
在 ~/foo/bob/ 中创建一个虚拟环境
pipenv --three
这将创建~/.local/share/virtualenvs/bob-signature/
安装您需要的任何软件包。例如
pipenv install jupyter
这将在其中创建一个 Pipfile.lock~/foo/bob/
创建另一个目录,说并在那里~/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,并且从这些目录中的任何一个安装的包都将被共享。