5

A python virtualenv is full of symlinks:

$ 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

What is the recommended way to backup/restor them ?

My first attempt using rdiff-backup has derefence all symbolic links when I restor backup back.

user3313834
  • 7,327
  • 12
  • 56
  • 99
  • Why would you need to? They're pretty lightweight, just recreate them as needed. If you have modules installed, save them to a `requirements.txt` file and add them to `setup.py`; this is also useful for distribution. – jonrsharpe Feb 28 '16 at 08:15

2 Answers2

13

Its easy to just freeze the environment into a text file and install from it later!

pip freeze > requirements.txt

then when you want to install

pip install -r requirements.txt
Nagashayan
  • 2,487
  • 2
  • 18
  • 22
3

rdiff-backup normally copies symlinks as they are and does not reference them. Did you maybe add the --include-symlinks option ?

"cp -p" or "rsync -a" would also preserve symlinks.

Zorglub
  • 2,077
  • 1
  • 19
  • 22