我已经在 Ubuntu 16.04 上安装了 virtualenv 和 virtualenvwrapper 我创建了一个名为 env1 的环境
$ sudo apt-get install python-pip
$ pip install virtualenv
$ pip install --upgrade pip
$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
$ mkvirtualenv env1
Run Code Online (Sandbox Code Playgroud)
进入 (env1) 后,我已经安装了几个软件包
(env1) $ pip install numpy
(env1) $ pip install scipy
(env1) $ pip install matplotlib
(env1) $ apt-get install python-tk
Run Code Online (Sandbox Code Playgroud)
我还安装了opencv3(我没有复制如何安装,因为太长了)
我正在将 env1 用于特定项目。
现在我想使用相同的包启动另一个项目,但我还想添加其他包。
我已经创建了 env2,我想知道是否可以将 env1 复制到 env2,而不需要从头开始重新安装所有内容。
你最好的选择是这样做:
虚拟环境-1:
pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
虚拟环境-2:
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
假设它们都在同一系统上并使用相同的 Python,那么有可能只复制站点包:
cp -Rp /environments/virtualenv-1/lib/python2.7/site-packages \
/environments/virtualenv-2/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)
但这不一定有效:
因此,最好的选择是pip freeze从该文件重新安装。