Удивительно, но поиск в 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
.