-
Notifications
You must be signed in to change notification settings - Fork 0
Virtualenv
Virtuaenv — утилита, позволяющая создавать «виртуальную среду» для питона, т.е. установить интерпретатор в произвольную директорию, в которой будут хранится и все установленные пакеты, таким образом не засоряя /usr/lib/python2.7/site-packages
Средствами своего пакетного менеджера установите Python 2 и pip для него (обратите внимание — для второго и третьего питона разные версии pip) (пакеты extra/python2
и extra/python2-pip
в арче). Потом установите virtualenv — либо пакетным менеджером (extra/python2-virtualenv
в арче), либо при помощи pip2 install virtualenv
.
Обратите внимание, что в разных дистрибутивах по-разному называют бинариники второго питона. python2
будет доступен почти всегда, а вот python
может быть ссылкой как на python3
(Arch), так и на python2
(Debian). Аналогично с pip2
/pip3
и virtualenv2
/virtualenv
.
Обратите внимание, что для глобальной установки пакетов (напримет, virtualenv
) pip
необходимо запускать от рута.
/tmp → virtualenv2 my_amazing_environment
New python executable in my_amazing_environment/bin/python2
Also creating executable in my_amazing_environment/bin/python
Installing setuptools, pip...done.
Если какие-то пакеты у вас уже установлены глобально, и вы хотите, чтобы они были доступны и в виртуальной среде, создавайте её с флагом --system-site-packages
.
/tmp → cd my_amazing_environment/
/tmp/my_amazing_environment → source bin/activate
(my_amazing_environment)/tmp/my_amazing_environment → echo $PATH
/tmp/my_amazing_environment/bin:~/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:…
(my_amazing_environment)/tmp/my_amazing_environment → ls
bin include lib
(my_amazing_environment)/tmp/my_amazing_environment → which python
/tmp/my_amazing_environment/bin/python
(my_amazing_environment)/tmp/my_amazing_environment → which pip
/tmp/my_amazing_environment/bin/pip
(my_amazing_environment)/tmp/my_amazing_environment → pip install nose
Downloading/unpacking nose
Downloading nose-1.3.3.tar.gz (274kB): 274kB downloaded
Running setup.py (path:/tmp/my_amazing_environment/build/nose/setup.py) egg_info for package nose
no previously-included directories found matching 'doc/.build'
Installing collected packages: nose
Running setup.py install for nose
no previously-included directories found matching 'doc/.build'
Installing nosetests script to /tmp/my_amazing_environment/bin
Installing nosetests-2.7 script to /tmp/my_amazing_environment/bin
Successfully installed nose
Cleaning up...
(my_amazing_environment)/tmp/my_amazing_environment → python
Python 2.7.8 (default, Jul 1 2014, 17:30:21)
[GCC 4.9.0 20140604 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nose
>>> dir(nose)
['DeprecatedTest', 'SkipTest', …, 'with_setup']
>>> exit()
(my_amazing_environment)/tmp/my_amazing_environment → nosetests -V
nosetests version 1.3.3
Обратите внимание, что несмотря на то, что в моей системе python
— это python3
, внутри виртуальной среды python
всё равно ссылается на единственный установленный интерпретатор — python2
. Обратите внимнание также и на то, что в виртуальной среде пакеты можно устанавливать без рута.
Разобраться, как это всё работает с pypy.