Когда-то существует потребность создать копию выхода virtualenv для тестирования дополнительных функций нашего проекта.
В таком случае мы должны создать копию существующей среды и добавить еще немного требований.
Один из способа создать копию существующего virtualenv упоминается ниже:
# while using existing virtualenv
(oldenv): pip freeze > requirements.txt
# after creating and logged-in to new virtualenv
(newenv): pip install -r requirements.txt
# where requirements.txt is the same file created using (oldenv)
Но я лично не предпочитаю этот путь. Почему?? Из-за установки тех же пакетов, которые уже являются там, который мы можем снова использовать. Многократное использование или говорит, что копирование не только уменьшит дополнительное время и усилие, но также уменьшит интернет-использование пропускной способности ни до одного, особенно для ограниченных и медленных интернет-пользователей.
Круто! Затем, что другие пути состоят в том, чтобы создать копию существующего virtualenv локально?
Я знаю два других способа, которыми я упоминаю ниже. Надежда они будут полезны.
Первый способ создать копию существующего virtualenv, говорят ProjectAenv
:
Скопируйте ProjectAenv в некоторое другое имя или каталог:
cp -R /home/sk/Path1/ProjectAenv /home/sk/Path2/ProjectBenv
где /home/sk/Path1/ProjectAenv
полный путь virtualenv ProjectAenv
Затем откройтесь activate
файл недавно скопированного ProjectBenv с помощью предпочтительного редактора:
gedit /home/sk/Path2/ProjectBenv/bin/activate
Найдите строку VIRTUAL_ENV = "/home/sk/Path1/ProjectAenv" и замените его:
VIRTUAL_ENV="/home/sk/Path2/ProjectBenv"
Сохраните и закройте файл.
Вот именно!! Ваша новая среда ProjectBenv копируется с ProjectAenv и готовая использовать. Я использую этот путь в течение долгого времени и никогда еще не получал проблем, хотя я рекомендую 2-му способу скопировать.
Второй способ создать копию существующего (Рекомендуемого) virtualenv:
Virtualenv-клон загрузки:
wget https://pypi.python.org/packages/source/v/virtualenv-clone/virtualenv-clone-0.2.6.tar.gz
tar -zxvf virtualenv-clone-0.2.6.tar.gz
cd virtualenv-clone-0.2.6
Virtualenv-клон установки в любой virtualenv среде:
virtualenv newenv # create a new environment. You can use any existing one.
source newenv/bin/activate # login to newenv
(newenv): python setup.py install # install virtualenv-clone in newenv
# be sure that you are inside the directory "virtualenv-clone-0.2.6"
virtualenv-clone
будет установлен внутри newenv.
Теперь, в то время как зарегистрированный как newenv мы можем создать копию любой существующей среды. Например, создавая копию ProjectAenv:
(newenv): virtualenv-clone ProjectAenv ProjectBenv
(newenv): deactivate # to come out from newenv.
Прокомментируйте для любых предложений или изменений.
Просто хочу добавить к ручному методу @SauravKumar. При фиксации пути в activate
сценарий необходим, но не достаточен. Также необходимо зафиксировать путь в других сценариях как pip
, pip2
, и т.д.
, самая легкая вещь сделать искать путь в виртуальной среде bin
папка как:
root@www:/var/www/app/venv/bin# grep "/tmp/app/HadithHouseWebsite/venv" * -R
activate:VIRTUAL_ENV="/tmp/app/HadithHouseWebsite/venv"
activate.csh:setenv VIRTUAL_ENV "/tmp/app/HadithHouseWebsite/venv"
activate.fish:set -gx VIRTUAL_ENV "/tmp/app/HadithHouseWebsite/venv"
django-admin:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
django-admin.py:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
easy_install:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
easy_install-2.7:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
pbr:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
pip:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
pip2:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
pip2.7:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
python-config:#!/tmp/app/HadithHouseWebsite/venv/bin/python
sqlformat:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
wheel:#!/tmp/app/HadithHouseWebsite/venv/bin/python2.7
Затем проходят эти файлы и изменяют тех, Вам нужно. Главным образом необходимо измениться эти activate*
файлы и pip*
файлы.
Hope это помогает.