我在之前创建的虚拟环境(venv1)中安装了一些python包(使用pip,它自动下载了包及其依赖项),现在我需要创建另一个虚拟环境(venv2),其中包含一个子集在venv1中安装的软件包。但是如果不使用互联网怎么办呢?我想出了一些想法,但我不确定它们是否可能:
那么更好的方法是什么?
由于
答案 0 :(得分:2)
如果除virtualenv
之外您使用的是virtualenvwrapper
(非常推荐),您可以使用
cpvirtualenv venv1 venv2
然后使用workon venv2
进入新环境,然后卸载不需要的软件包。
答案 1 :(得分:0)
我想说复制venv是最简单的选择。但是,在这种情况下,在创建第一个venv时,您需要使用--relocatable
标志:
$ virtualenv --help
...
--relocatable Make an EXISTING virtualenv environment relocatable.
This fixes up scripts and makes all .pth files
relative
例如:
$ virtualenv --relocatable venv1
$ venv1/pip/install somepackage
$ cp venv1 venv2
然后你可以在venv上使用cp
。
否则你的venv将无法复制/移动,因为它包含绝对路径。