Скопируйте полный virtualenv на другой компьютер

У меня есть virtualenv расположенный в /home/user/virtualenvs/Environment. Теперь мне нужна эта среда на другом ПК. Поэтому я установил virtualenv-clone и использовал его для клонирования /Environment. Затем я скопировал его на другой компьютер через USB. Я могу активировать его при source activate, но когда я пытаюсь запустить интерпретатор python с помощью sudo./Environment/bin/python я получаю

./bin/python: 1: ./bin/python: Syntax Error: "(" unexpected

Выполнение этого без sudo дает мне ошибку, сообщая мне, что в формате двоичных файлов есть ошибка. Но как это может быть? Я просто скопировал его. Или есть лучший способ сделать это? Я не могу просто использовать pip freeze на /Environment/lib/python2.7/site-packages/ потому что в /Environment/lib/python2.7/site-packages/ есть некоторые пакеты, которые я написал сам, и мне тоже нужно их скопировать. Насколько я понимаю, pip freeze просто создает список пакетов, которые pip загружает и устанавливает.

Ответ 1

Выполните следующие действия на исходном компьютере:

  1. workon [environment_name]
  2. замораживание pip> needs.txt
  3. скопировать файл require.txt на другой компьютер

На другом ПК:

  1. создать виртуальную среду с помощью mkvirtualenv [имя_среды]
  2. workon [environment_name]
  3. pip install -r needs.txt

Вы должны быть сделаны.

Другие ресурсы:

Ответ 2

Я думаю, что происходит то, что вы просто копируете символические ссылки в исходном файле на целевой компьютер в виде двоичных файлов (больше не ссылок). Вы должны скопировать его с помощью rsync -l для копирования, чтобы сохранить эти ссылки.

Ответ 3

Обычно я использую virtualenv для создания новой среды, затем захожу в среду, из которой хочу скопировать, копирую все папки и вставляю ее в папку среды, которую я только что создал, но самое главное, когда спрашиваю, хотите ли вы заменить место назначения файлы, выберите пропустить эти файлы. Таким образом вы сохраните свои настройки. По крайней мере, для меня это сработало очень хорошо. Я надеюсь, что это работает и для вас.