如何与 pipenv 共享虚拟环境?
How to share a virtual environment with pipenv?
Pipenv 虚拟环境 (venv) 将与子文件夹共享。
因此,例如,如果您在 ~/foo/
中安装了 venv,则可以在 ~/foo/baz/
中访问它
但是如果您想在 ~/foo/bob/
和 ~/baz/alice/
之间共享相同的 venv 怎么办?
以下对我有用。希望对你有帮助。
与 pipenv 共享虚拟环境
创建目录~/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 将在 ~/.local/share/virtualenvs/
中创建 alice-signature/
。
删除该文件夹并将其替换为 link 到 bob-signature
cd ~/.local/share/virtualenvs/
rm -r alice-signature/
ln -s bob-signature/ alice-signature
In ~/baz/alice/
, link 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,从任何这些目录安装的软件包将被共享。
pipenv
中有一个未记录的功能:如果您在项目根目录中创建一个名为 .venv
的文件并带有 virtualenv 的路径,pipenv
将使用该文件而不是自动生成的路径。
(您仍然需要保持 Pipfile
和 Pipfile.lock
同步。按照@MalikKoné 的建议使它们成为符号链接,但如果 Pipfile
不在他们应该的版本控制。)
然而,这 。否则,将环境放置在任意位置最终很容易造成混乱。
Pipenv 虚拟环境 (venv) 将与子文件夹共享。
因此,例如,如果您在 ~/foo/
中安装了 venv,则可以在 ~/foo/baz/
但是如果您想在 ~/foo/bob/
和 ~/baz/alice/
之间共享相同的 venv 怎么办?
以下对我有用。希望对你有帮助。
与 pipenv 共享虚拟环境 创建目录~/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 将在 ~/.local/share/virtualenvs/
中创建 alice-signature/
。
删除该文件夹并将其替换为 link 到 bob-signature
cd ~/.local/share/virtualenvs/
rm -r alice-signature/
ln -s bob-signature/ alice-signature
In ~/baz/alice/
, link 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,从任何这些目录安装的软件包将被共享。
pipenv
中有一个未记录的功能:如果您在项目根目录中创建一个名为 .venv
的文件并带有 virtualenv 的路径,pipenv
将使用该文件而不是自动生成的路径。
(您仍然需要保持 Pipfile
和 Pipfile.lock
同步。按照@MalikKoné 的建议使它们成为符号链接,但如果 Pipfile
不在他们应该的版本控制。)
然而,这