Pipenv虚拟环境( venv )将与子文件夹共享。
例如,如果您在~/foo/
中安装了 venv ,则可以在~/foo/baz/
但是,如果您想在~/foo/bob/
和~/baz/alice/
之间共享相同的 venv 会怎样?
以下类型对我有用。我希望它可以提供帮助。
答案 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/
创建另一个目录,比如~/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
将使用该文件而不是自动生成的路径。
(您仍然需要保持Pipfile
和Pipfile.lock
的同步。按照@MalikKoné的建议,使它们成为符号链接,但如果Pipfile
受版本控制,则不需要如他们所愿。)
但这是is more fit for cases when you already have an established set of environments that you wish to reuse。否则,将环境放置在任意位置最终会造成混乱。