<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Virtualenv</id>
	<title>Virtualenv - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=Virtualenv"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Virtualenv&amp;action=history"/>
	<updated>2026-04-03T20:37:56Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=Virtualenv&amp;diff=1007&amp;oldid=prev</id>
		<title>imported&gt;Vix: Новая страница: «'''virtualenv: виртуальные окружения'''    Много у вас разных питонячих проектов работают на одн…»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=Virtualenv&amp;diff=1007&amp;oldid=prev"/>
		<updated>2013-09-09T20:29:37Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;virtualenv: виртуальные окружения&amp;#039;&amp;#039;&amp;#039;    Много у вас разных питонячих проектов работают на одн…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''virtualenv: виртуальные окружения'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Много у вас разных питонячих проектов работают на одном сервере? У меня вот да. Все ли они использую одни и те же библиотеки или версии библиотек? Нет. Так как сделать, чтобы можно было удобно поддерживать всё это многообразие?&lt;br /&gt;
&lt;br /&gt;
Давным дано я предлагал один вариант - использовать svn:externals и таскать зависимости (код сторонних библиотек и приложений) с собой. Но такой способ очень ограничен в своем применении. Вы должны использовать VCS (subversion или иные поддерживающие аналогичные концепции) для развертывания проекта на сервере и все зависимости тоже должны быть доступны в той же системе контроля версий. Но так случается очень редко. Да и потом далеко не всегда VCS вообще используются для выкладки проектов. Пакетные системы во многих случаях удобней.&lt;br /&gt;
&lt;br /&gt;
Создание изолированных окружений задача довольно давнишняя. И в питонячем мире решается разными способами уже давно. Одним из инструментов является - virtualenv.&lt;br /&gt;
&lt;br /&gt;
Создать окружение просто:&lt;br /&gt;
&lt;br /&gt;
 virtualenv myenv&lt;br /&gt;
&lt;br /&gt;
После выполнения этой команды создается директория myenv в который находится некое подмножество unix-like корневой файловой системы. В директории myenv/bin будет лежать бинарник питона, и несколько дополнительных скриптов. В myenv/lib - дерево каталогов, повторяющее оное у текущего установленного питона в системе.&lt;br /&gt;
&lt;br /&gt;
Для того чтобы питонячий код работал в этом окружении, его надо запускать, используя myenv/bin/python, или подключив к своему скрипту вспомогательный модуль myenv/bin/activate.&lt;br /&gt;
&lt;br /&gt;
Так же в myenv/bin будет специальный easy_install скрипт, через который можно устанавливать в это окружение дополнительные пакеты.&lt;br /&gt;
&lt;br /&gt;
На самом деле это окружение не совсем изолированное. Если какой-то пакет не установлен в нем самом, то будет использован тот который установлен глобально в системе (если там он всё-таки есть). В большинстве случаев это удобно. Имеет смысл железобетонные пакеты, которые не часто обновляются, иметь не в каждом окружении отдельно, а глобально в системе, чтобы все могли им пользоваться.&lt;br /&gt;
&lt;br /&gt;
Но это окно в глобальный мир можно закрыть - достаточно при создании окружения указать опцию --no-site-packages. В таком случае доступ из окружение к глобально установленным пакетам будет закрыт.&lt;br /&gt;
&lt;br /&gt;
Я стал применять virtualenv относительно недавно. В момент когда решил занять кардинальной перестройкой блога. На прошлом своем опыте я понял, что иметь независимые инстансы проекта на одном сервере это насущная необходимость для удобной разработки, тестирования и выкладки в мир.&lt;br /&gt;
&lt;br /&gt;
Причем при таком подходе я смог добиться повторяемости установок - я могу установить неограниченное число инстансов проекта на один сервер с нуля. И все они будут независимы друг от друга и изменения в одном никак не затрагивают другие.&lt;br /&gt;
&lt;br /&gt;
Построив систему на базе независимых окружений совместно с pip и fabric, поддерживать и развивать весь зоопарк проектов стало значительно легче. Рекомендую.&lt;br /&gt;
&lt;br /&gt;
Взято тут:[http://webnewage.org/2009/04/27/virtualenv/]http://webnewage.org/2009/04/27/virtualenv/&lt;/div&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
</feed>