Таня Шлюссер - Автостопом по Python
- Название:Автостопом по Python
- Автор:
- Жанр:
- Издательство:Питер
- Год:2017
- Город:СПб.
- ISBN:978-5-496-03023-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Таня Шлюссер - Автостопом по Python краткое содержание
и содержит наработки многочисленных профессионалов и энтузиастов, знающих, что такое Python, и чего вы от него хотите. Проверенные методы и новейшие приемы, собранные в этой книге, помогут вам стать профессиональным Python-программистом и во всеоружии встретить наступающую эпоху Python 3.
Автостопом по Python - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Для того чтобы пропустить полные инструкции по установке virtualenvwrapper ( http://bit.ly/virtualenvwrapper-install), сначала убедитесь, что у вас уже установлен virtualenv. Затем в OS X или Linux введите следующую строку в командную консоль:
$ pip install virtualenvwrapper
Используйте команду pip install virtualenvwrapper, если работаете с Python 2, добавьте эту строку в ваш профиль:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
Далее введите следующую строку в ваш профиль ~/.bash_profile или любой другой профиль оболочки:
source /usr/local/bin/virtualenvwrapper.sh
Наконец, закройте текущее окно консоли и откройте новое, чтобы активизировать ваш новый профиль. Теперь virtualenvwrapper доступен.
В Windows следует использовать virtualenvwrapper-win. После установки virtualenv введите следующий код:
PS C: \> pip install virtualenvwrapper-win
На обеих платформах наиболее часто используются следующие команды:
• mkvirtualenv my_venv
— создает виртуальную среду в каталоге ~/.virtualenvs/ my_venv
. В Windows среда my_venv
будет создана в каталоге, который можно определить, введя команду %USERPROFILE%\Envs
в командной строке. Это местоположение можно изменить с помощью переменной среды $WORKON_HOME
;
• workon my_venv
— активизирует виртуальную среду или переключает вас на указанную среду;
• deactivate
— деактивизирует виртуальную среду;
• rmvirtualenv my_venv
— удаляет виртуальную среду.
Инструмент virtualenvwrapper предоставляет возможность заполнения имен сред путем нажатия клавиши Tab (может пригодиться, если у вас множество сред и трудно запомнить их имена). Немало других полезных функций задокументировано в полном списке команд virtualenvwrapper ( http://bit.ly/virtualenvwrapper-command).
Buildout
Buildout ( http://www.buildout.org/en/latest/) — это фреймворк для Python, который дает возможность создавать рецепты . Это модули Python, содержащие произвольный код (обычно системные вызовы для создания каталогов или код, позволяющий проверить и построить исходный код либо добавить в проект элементы, написанные не на Python, например базу данных или сервер). Установите его с помощью команды pip:
$ pip install zc.buildout
Проекты, использующие Buildout, будут содержать zc.buildout и необходимые им рецепты в файле requirements.txt (либо включат пользовательские рецепты в исходный код), а также конфигурационный файл buildout.cfg и сценарий bootstrap.py в каталоге верхнего уровня. Если вы запустите сценарий, введя команду python bootstrap.py, он прочтет конфигурационный файл, чтобы определить, какие рецепты нужно использовать, а также настройки конфигурации для каждого рецепта (например, определенные флаги компилятора и флаги для связывания библиотек).
Buildout позволяет портировать проекты Python, включающие фрагменты, написанные не на Python (другой пользователь может воссоздать такую же среду). В этом отличие от сценариев-перехватчиков в virtualenvwrapper, которые нужно скопировать и передать вместе с файлом requirements.txt, чтобы можно было воссоздать виртуальную среду. Содержит все необходимое для установки архивов egg [32] Egg — это ZIP-архив с особой структурой. Эти архивы были заменены на архивы wheels в PEP 427 ( https://www.python.org/dev/peps/pep-0427 /). Были представлены популярной библиотекой упаковки Setuptools (сейчас библиотека по умолчанию), предлагающей полезный интерфейс для distutils ( https://docs.python.org/3/library/distutils.html ) из стандартной библиотеки Python. Вы можете прочесть об особенностях этих форматов в разделе Wheel vs Egg ( https://packaging.python.org/en/latest/wheel_egg /) руководства Python Packaging User.
, что можно пропустить в новых версиях Python, которые используют архивы wheels. Обратитесь к руководству Buildout ( http://www.buildout.org/en/latest/docs/tutorial.html) для получения более подробной информации.
Conda
Инструмент Conda ( http://conda.pydata.org/docs/) похож на pip, virtualenv и Buildout одновременно. Поставляется с дистрибутивом Anaconda и является его менеджером пакетов по умолчанию. Его можно установить с помощью pip:
$ pip install conda
А pip — с помощью conda:
$ conda install pip
Пакеты хранятся в разных репозиториях (pip получает их из http://pypi.python.org, а conda из https://repo.continuum.io/), имеют разные форматы, поэтому эти инструменты невзаимозаменяемы.
В таблице по адресу http://bit.ly/conda-pip-virtualenvl, созданной компанией Continuum (создателями Anaconda), приводится сравнение трех доступных вариантов: conda, pip и virtualenv.
Инструмент conda-build, аналог Buildout от компании Continuum, может быть установлен на всех платформах, если ввести следующее:
conda install conda-build
Как и в Buildout, формат файла конфигурации conda-build называется рецептом (не ограничен использованием только лишь инструментов Python). В отличие от Buildout, код указан в сценарии оболочки (это не код Python). Конфигурация приводится в формате YAML [33] YAML ( https://en.wikipedia.org/wiki/YAML ) расшифровывается как YAML Ain’t Markup Language — «не просто еще один язык разметки».
(это язык разметки, который понимают и люди, и машины), а не в формате ConfigParser ( https://docs.python.org/3/library/configparser.html).
Основное преимущество conda перед pip и virtualenv оценят пользователи Windows — библиотеки Python, созданные как расширения на C, могут быть представлены в формате wheels (или в другом), но они практически всегда присутствуют в каталоге пакетов Anaconda ( http://docs.continuum.io/anaconda/pkg-docs). Если пакет недоступен через conda, можно установить pip, а затем — пакеты, которые размещаются в PyPI.
Docker
Инструмент Docker ( https://www.docker.com/) помогает изолировать среду (как virtualenv, conda или Buildout), но вместо того, чтобы предоставлять виртуальную среду, предлагает контейнер Docker . Контейнеры проще изолировать, чем среды. Например, вы можете запустить несколько контейнеров — и у каждого будет свой сетевой интерфейс, правила брандмауэра и имя хоста. Эти контейнеры управляются отдельной утилитой Docker Engine ( https://docs.docker.com/engine/), которая координирует доступ к лежащим в их основе операционным системам. Если вы запускаете контейнеры Docker в OS X, Windows или на удаленном хосте, понадобится Docker Machine ( https://docs.docker.com/machine/) (позволяетт взаимодействовать с виртуальными машинами [34] Виртуальная машина — это приложение, которое эмулирует компьютерную систему путем имитации желаемого аппаратного обеспечения и предоставления требуемой операционной системы для компьютера-хоста.
, запущенными в Docker Engine).
Контейнеры Docker изначально были основаны на контейнерах Linux Containers, которые были связаны с командой оболочки chroot ( https://en.wikipedia.org/wiki/Chroot).
chroot — это подобие команды virtualenv на системном уровне: позволяет сделать так, чтобы корневой каталог (/) располагался по адресу, указанному пользователем, а не в реальном корневом каталоге (это предоставляет пользователю отдельное пространство ( https://en.wikipedia.org/wiki/User-space)).
Docker больше не использует chroot и даже Linux Containers (позволяет включить в число доступных образов Docker машины Citrix и Solaris), но принцип работы контейнеров Docker Containers не изменился. Их конфигурационные файлы называются Dockerfiles ( https://docs.docker.com/engine/reference/builder/), с их помощью создаются образы Docker ( https://docs.docker.com/engine/userguide/containers/dockerimages/), которые можно разместить в Docker Hub ( https://docs.docker.com/docker-hub/), репозитории пакетов Docker (аналогичен PyPI).
Читать дальшеИнтервал:
Закладка: