如何备份/恢复Python虚拟环境?

5

Python虚拟环境充满了符号链接:

$ virtualenv venv
Running virtualenv with interpreter /usr/bin/python2
New python executable in venv/bin/python2
Also creating executable in venv/bin/python
Installing setuptools, pip...done.
$ tree venv/lib/
venv/lib/
├── python2.7
│   ├── _abcoll.py -> /usr/lib/python2.7/_abcoll.py
│   ├── _abcoll.pyc
│   ├── abc.py -> /usr/lib/python2.7/abc.py
│   ├── abc.pyc
│   ├── codecs.py -> /usr/lib/python2.7/codecs.py
│   ├── codecs.pyc
│   ├── copy_reg.py -> /usr/lib/python2.7/copy_reg.py
│   ├── copy_reg.pyc
│   ├── distutils
│   │   ├── distutils.cfg
│   │   ├── __init__.py
│   │   └── __init__.pyc
│   ├── encodings -> /usr/lib/python2.7/encodings
│   ├── fnmatch.py -> /usr/lib/python2.7/fnmatch.py
│   ├── fnmatch.pyc
│   ├── genericpath.py -> /usr/lib/python2.7/genericpath.py
│   ├── genericpath.pyc

如何备份/恢复它们是推荐的方式?

我第一次尝试使用rdiff-backup时,在恢复备份时解除了所有符号链接。


为什么需要这样做呢?它们非常轻量级,只需根据需要重新创建即可。如果已安装了模块,请将它们保存到“requirements.txt”文件中,并将其添加到“setup.py”中;这对于分发也很有用。 - jonrsharpe
2个回答

13

把环境冻结到一个文本文件中并稍后从中安装很容易!

pip freeze > requirements.txt

然后当您想要安装时

pip install -r requirements.txt

3

rdiff-backup通常按原样复制符号链接并不引用它们。你是否添加了--include-symlinks选项?

“cp -p”或“rsync -a”也可以保留符号链接。


我使用的参数是:rdiff-backup --no-acls --exclude-special-files 源目录 目标目录 - user3313834

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接