Pipenv虚拟环境(venv)将与子文件夹共享。例如,如果您在~/foo/ 中安装了一个venv,则可以在~/foo/baz/中访问它。
但是,如果您想在~/foo/bob/和~/baz/alice/之间共享相同的venv怎么办?
以下方法对我有些起作用。希望它能帮到你。
pipenv
有一个未记录的功能:如果在项目根目录中创建一个名为.venv
的文件,并将其路径指向虚拟环境,pipenv
将使用该文件而不是自动生成的路径。
(您仍需要保持Pipfile
和Pipfile.lock
同步。像@MalikKoné建议的那样将它们设置为符号链接可能有效,但如果Pipfile
在版本控制下,则不行,因为这是它们应该具备的特性。)
然而,这更适合您已经有一组要重用的环境的情况。否则,在任意位置放置环境很容易会导致混乱。
如何使用pipenv共享虚拟环境 创建一个目录~/foo/bob/
mkdir -p ~/foo/bob/ ; cd ~/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
~/.local/share/virtualenvs/
中创建 alice-signature/
文件夹。删除该文件夹,并将其替换为指向 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 .
Pipfile
文件受版本控制(应该是这样的),则符号链接无法使用。 - ivan_pozdeev