При разработке на python часто требуется установка дополнительных пакетов. Традиционно для этого используется утилита pip (dev-python/pip). Отсюда всплывает вопрос, а может стоит оградить себя от установки пакетов через pip прямиком в систему? И как это сделать?
Именно для этого придумали утилиту virtualenv, которая выступает генератором виртуальных сред python. Кратко рассмотрим как это работает.
Для начала установим virtualenv:
# emerge dev-python/virtualenv
Теперь создадим каталог с окружением:
$ virtualenv env Using base prefix '/usr' New python executable in env/bin/python3.4 Also creating executable in env/bin/python Installing setuptools, pip, wheel...done.После этого, у нас появилась возможность использовать pip из этого каталога. Установим туда какой-нибудь пакет, чтобы посмотреть куда он установится:
$ env/bin/pip install python-telegram-bot Collecting python-telegram-bot Downloading python_telegram_bot-5.0.0-py2.py3-none-any.whl (130kB) 100% |████████████████████████████████| 131kB 3.7MB/s Collecting certifi (from python-telegram-bot) Downloading certifi-2016.2.28-py2.py3-none-any.whl (366kB) 100% |████████████████████████████████| 368kB 709kB/s Collecting urllib3>=1.10 (from python-telegram-bot) Downloading urllib3-1.16-py2.py3-none-any.whl (98kB) 100% |████████████████████████████████| 102kB 342kB/s Collecting future>=0.15.2 (from python-telegram-bot) Downloading future-0.15.2.tar.gz (1.6MB) 100% |████████████████████████████████| 1.6MB 424kB/s Building wheels for collected packages: future Running setup.py bdist_wheel for future Stored in directory: /home/username/.cache/pip/wheels/11/c5/d2/ad287de27d0f0d646f119dcffbac1f4e63df128f28ab0a1bda Successfully built future Installing collected packages: certifi, urllib3, future, python-telegram-bot Successfully installed certifi-2016.2.28 future-0.15.2 python-telegram-bot-5.0.0 urllib3-1.16 You are using pip version 7.1.2, however version 8.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
Там же есть валидатор кода pep8 (конечно, если он установлен dev-python/pep8). Запускается он аналогично.
$ env/bin/pep8Можно перенести настройки этого virtualevn на всю систему - для этого нужно сделать
$ . env/bin/activate
или
$ source env/bin/activate
Для того, чтобы "выключить" эти настройки, нужно написать
$ deactivateДля того, чтобы использовать эту среду в своих приложениях, нужно добавлять в sh-скрипты следующую форму:
#!/usr/bin/env python <python code here>
Или же просто натравливайте интерпретатор python из директории на свои *.py скрипты.
На этом всё.
0 коммент.:
Отправить комментарий