Вопрос по python – Может ли virtualenv наследовать от другого?

13

Я хочу создатьvirtualenv используя другую в качестве отправной точки, возможно ли это?

Я должен использовать случаи в виду:

Let's say I have a two virtualenv one for production and one for development. The development environment requires the same packages as the production environment, but it requires others I don't want in the production environment. I don't want to install the common packages twice.

I want to experiment with a development version of a package, say matplotlib for example. The development version of the package has the same requirements as the stable version. So I create a virtualenv called matplotib_stable and install the requirements and the stable version. Then I create a second virtualenv called matplotlib_dev and use matplotlib_stable as a starting point (for the matplotlib requirements) but then I install the development version.

Как мне установить из локального кэша с pip? Похоже, она решает проблему загрузки пакетов, но я не думаю, что она имеет дело с изменениемsys.path.

Ваш Ответ

2   ответа
13

Одним из решений является использованиеvirtualenvwrapper& APOS; sadd2virtualenv команда. это

Adds the specified directories to the Python path for the currently-active virtualenv.

Так что, если у меня есть дваvirtualenv, ENV1 а такжеENV2, и я хочуENV2 чтобы получить доступ к пакетам вENV1тогда мне нужно:

  1. activate ENV2:

    workon ENV2

  2. add ENV1's site-packages directory using add2virtualenv:

    add2virtualenv $WORKON_HOME/ENV1/lib/python2.6/site-packages

Вышесказанное предполагает$WORKON_HOME это расположение ваших каталогов virtualenv и то, что вы используете python2.6, поэтому, очевидно, скорректируйте их соответствующим образом.

Хотя это обеспечивает доступ к пакетам, оно не регулирует путь оболочки. Другими словами, скрипты, установленные наbin каталог не доступен с помощью этого метода.

Error: User Rate Limit Exceededvenv.
Error: User Rate Limit Exceededadd2virtualenv $WORKON_HOME/ENV1/lib/python3.4/site-packagesError: User Rate Limit Exceeded
Error: User Rate Limit Exceededadd2virtualenv $WORKON_HOME/ENV2/lib/python2.6/site-packagesError: User Rate Limit Exceeded
Error: User Rate Limit ExceededvirtualenvError: User Rate Limit ExceededvertualenvwrapperError: User Rate Limit Exceeded Yann
-1

Следующее, кажется, работает для меня. Предположим, что старая виртуальная среда, которую вы хотите унаследовать, называетсяold, Поскольку вы можете указать, какую версию Python использовать при создании новой среды, просто выполните:

virtualenv -p path_to_venvs/old/bin/python --system-site-packages new_env
Error: User Rate Limit ExceededUsing base prefix '/usr'
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы