Я создал виртуальный окр питона с помощьюКак скопировать питон виртуального окр доступ к глобальным пакетам на другую машину
$ virtualenv --system-site-packages env
Он отлично работает на машине, где я настроить виртуальный окр и я могу получить доступ все глобальные пакеты в моем скрипте.
Затем я скопировал этот виртуальный окр к другой машине, следуя этим steps-
- Создания виртуального окр перемещаемого на моей локальной машине
$ virtualenv --relocatable env
- Копирования папки
env
к удаленной машине. - Изменить
env/bin/activate
скрипт для измененияVIRTUAL_ENV
пути на удаленной машине
С этим я могу получить доступ ко всем моим местным пакетам просто отлично. Но по какой-то причине он не может получить доступ к пакетам системного уровня. Пакет системного уровня, который я пытаюсь использовать, - psycopg2.
Однако что-то делать, как показано ниже на удаленной машине дает мне доступ к модулю
$ ln -s /usr/lib64/python2.7/dist-packages/psycopg2 $virtual_env/lib/python2.7/site-packages
или
$ cp -R /usr/lib64/python2.7/dist-packages/psycopg2 $virtual_env/lib/python2.7/site-packages
psycopg2 Есть ли способ, я могу получить эту работу без того, чтобы это сделать взломать? Как работает --system-site-packages
? Из того, что я вижу, опция -system-site-packages не делает бумажную копию пакетов системного уровня виртуальным env
. Значит, он устанавливает какую-то переменную пути в сценариях, которые я могу изменить и заставить это работать?
Как уже упоминалось в моем вопросе, я уже использую --relocatable. Это делает большую часть переменных пути относительной, поэтому его переносимость. По какой-то причине моя фирма не поддерживает воссоздание виртуального env на разных серверах. Идея состоит в том, чтобы полный готовый env, рассказать об этом и развернуть его на разных серверах. В скрипте есть все, что нужно для выполнения на этом env. Но проблема возникает, когда я пытаюсь получить доступ к пакету системного уровня. Мой вопрос в том, как он работает внутри страны? Есть ли переменная пути, которую я могу изменить, и заставить это работать так, как мы делаем это для активации скрипта? –
исправление выше - «В сценарии есть все, что нужно для выполнения на этом env». - «В env есть все необходимое для выполнения скрипта». Кроме того, я уже делаю все, что вы упомянули выше, для настройки виртуального env на моей локальной машине, например 'pip install -r requirements.txt'.Извините, но это не ответило на мой вопрос. –