Я работаю на 64-битной машине с Ubuntu-14.04-64.Я скомпилировал и установил python-3.4.3 в / opt / python3.4 / и создал vitualenv на основе этого питона.
mkvirtualenv -p /opt/python3.4/bin/python venv1
Также для простоты:
sudo apt-get install virtualenvwrapper
С установленным venv и успешно работающим с PyQt5 (хард бит) плюс numpy, scipy, ipython и т. Д. Я установил virtualenv-clone:
workon myvenv
pip install virtual-clone
deactivate
и затем запустил:
virtualenv-clone venv1 venv2
PyQt5 работает таким образом.Приглашение командной строки по-прежнему называет venv1 как активное, но в ~ / .virtualenv / venv2
cat activate* | grep "venv1"
показывает 3 записи в трех файлах активации, activ.csh и activ.fish
При активации измените
if [ "x(myvenv1) " != x ] ; then
PS1="(myvenv1) $PS1"
else
на
...
PS1="(myvenv2) $PS1"
...
In activ.csh изменить
if ("venv1" != "") then
set env_name = "venv1"
else
на
...
set env_name = "venv2"
...
In activ.fish изменить
if test -n "(venv1) "
printf "%s%s%s" "(venv1) " (set_color normal) (_old_fish_prompt)
return
end
до
...
printf "%s%s%s" "(venv2) " (set_color normal) (_old_fish_prompt)
...
Теперь, когда вы source ~/.virtualenv/venv2/bin/activate
или workon venv2
, командная строка будет правильно отображать вашу среду (клонированную копию venv1).
Редактировать: это не 't ответить на вопрос «Как скопировать модули из одного virtualenv в другой» , но я вполне уверен, что во многих случаях желаемый результат, а именно создание нового venv на основе ранее созданногокоторый включает в себя (все) ранее установленные модули.