Удивительно, но поиск в Google " virtualenv " приводит вас к документации в virtualenv. Если вы хотите использовать его, я предлагаю хотя бы краткое прочтение.
Как следует из названия, virtualenv - это инструмент для создания изолированных или "виртуальных" сред для Python. Он позволяет вам настроить несколько независимых экземпляров для разных проектов, каждый со своими модулями и даже версиями Python. Это полезно в различных обстоятельствах, не в последнюю очередь, когда у вас нет прав администратора и вы хотите установить модули Python. Из документов:
Основная проблема, которую нужно решить, - это зависимости, версии и косвенные права доступа. Представьте, что у вас есть приложение, которому требуется версия 1 LibFoo, а другому приложению требуется версия 2. Как вы можете использовать оба этих приложения? Если вы устанавливаете все в /usr/lib/python2.7/site-packages (или где-либо в другом месте вашей платформы), легко оказаться в ситуации, когда вы непреднамеренно обновляете приложение, которое не следует обновлять.
Или, в целом, что если вы хотите установить приложение и оставить его? Если приложение работает, любое изменение в его библиотеках или версиях этих библиотек может нарушить работу приложения.
Кроме того, что если вы не можете установить пакеты в глобальный каталог site-packages ? Например, на общем хосте.
Во всех этих случаях virtualenv может вам помочь. Он создает среду, которая имеет свои собственные установочные каталоги, которая не разделяет библиотеки с другими средами virtualenv (и, по желанию, также не имеет доступа к глобально установленным библиотекам).
Так что у вас есть это. lib/ находятся модули. include/ предназначен для заголовков и других общих ресурсов. local/ предназначен для вещей, которые живут за пределами основного модуля site-packages` (в lib/), таких как ваши собственные приложения.И наконец, bin/`- это место, где живут исполняемые файлы.
Каталог /tmp , как это звучит, является временным каталогом - используется для временного хранения вещей. В зависимости от системы, они могут удаляться или не удаляться периодически или при перезагрузке системы. Или нет, это зависит. Ваша первая команда создала подкаталог /tmp именем vetest/ .
Ваша вторая команда, source , в основном означает «запустить команды, перечисленные в этом файле». Это встроенная команда, часть оболочки. Результатом этой команды является запуск виртуальной среды. Теперь вы должны увидеть (venv) в командной строке.
Оказавшись внутри, вы использовали программу установки Python, или pip , которая автоматически включается в каждый virtualenv. pip связывается с индексом пакетов Python или PyPI. Это самое близкое, что есть у сообщества Python к центральному репозиторию, похожему на Perl CPAN или Ruby's rubygems.org. В вашем случае, pip искал модуль ipython-notebook , которого, к сожалению, не существует (ноутбук является частью базовой установки IPython ). Если бы вы запустили pip install ipython вы бы получили что-то вроде:
Downloading/unpacking ipython
Downloading ipython-0.13.2.zip (6.4MB): 6.4MB downloaded
Running setup.py egg_info for package ipython
Installing collected packages: ipython
Running setup.py install for ipython
Installing ipcluster3 script to /tmp/vetest/bin
Installing irunner3 script to /tmp/vetest/bin
Installing ipcontroller3 script to /tmp/vetest/bin
Installing iptest3 script to /tmp/vetest/bin
Installing pycolor3 script to /tmp/vetest/bin
Installing iplogger3 script to /tmp/vetest/bin
Installing ipengine3 script to /tmp/vetest/bin
Installing ipython3 script to /tmp/vetest/bin
Successfully installed ipython
Cleaning up...
Из /tmp/vetest вы теперь можете набрать ipython3 notebook (при условии, что у вас есть Python 3, который вы должны использовать в любом случае), чтобы запустить сервер IPython Notebook и сеанс в браузере. К сожалению, это не удастся, потому что вам не хватает связок, таких как tornado , но они легко устанавливаются с помощью pip . Список основных зависимостей доступен на веб-сайте IPython. Для дополнительных функций, таких как pylab требуются NumPy , SciPy и matplotlib .
Наконец, команда deactivate завершает сеанс virtualenv .