Python
Хостинг 1Gb.ru позволяет запускать скрипты написанные на языке Python на всех тарифных планах за исключением тарифа «ПРОСТО» .
[править] Версии Python
На серверах виртуального хостинга может быть установлено одновременно несколько версий Python. Посмотреть доступные версии можно командой:
$ ls -l /usr/bin/python[0-9] lrwxrwxrwx 1 root root 9 Jan 8 2013 /usr/bin/python2 -> python2.7 lrwxrwxrwx 1 root root 9 Dec 10 2012 /usr/bin/python3 -> python3.2
Из данного примера видно, что установлены Python 2.7 и 3.2 версий.
Соответственно, точные версии можно посмотреть командами:
$ python3 -V Python 3.2.3
$ python2 -V Python 2.7.3
Также возможно установить любую версию в свой домашний каталог, о чем пойдет речь ниже.
[править] Запуск скриптов на Python
Скрипты могу запускаться в различных режимах, наиболее простой способ — в режиме CGI.
[править] CGI
Для запуска в данном режиме достаточно чтобы скрипт имел расширение .cgi и в начале скрипта был указан путь к интерпретатору (см. shebang).
Пример:
~/http $ cat test_python.cgi #!/usr/bin/python print ("Content-type: text/html\n") print ("hello")
Для того чтобы можно было запускать скрипты с другим расширением, необходимо в ~/http/.htaccess добавить:
AddHandler cgi-script .py
и на файл установить права доступа 755
$ chmod 755 test_python.py
[править] FastCGI
Для запуска в этом режиме необходимо в личном кабинете в разделе «Управление сайтами и серверами» переключить сайт на сервер «UNIX / Apache PHP5 (fastcgi)»; смена типа сервера займет около часа.
Расширение у файла должно быть .fcgi
[править] mod_wsgi
Поддержка модуля mod_wsgi возможна при использовании опции «собственный Apache» из раздела кабинета «Хостинг HTTP служб». В этом случае вы получаете полный контроль к файлам настройки сервера Apache, что позволяет вам создать любую конфигурацию.
[править] Установка собственной версии
Общесистемно не всегда возможно обновить Python на сервере, но среда хостинга 1Gb.ru позволяет поставить и использовать любую версию из своего домашнего каталога.
Рекомендуем использовать метод установки из статьи Django — быстрый старт (поддерживаемая версия) пункты 2-3 абзаца «подготовка окружения».
1. Создаем каталог для исходных текстов:
$ mkdir ~/src && cd ~/src
2. С сайта python.org скачиваем архив с исходниками. Пример ниже показывает команды для версии 2.6.9, в вашем случае версия может быть любой.
$ wget http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz
3. Распаковка:
$ tar xvfz Python-*.tgz && cd Python-*
4. Компиляция и установка в каталог ~/local
$ ./configure --prefix=$HOME/local --disable-ipv6 && make && make install
5. Если установка завершилась успешно, следующая команда покажет вам версию Python:
$ ~/local/bin/python -V Python 2.6.9
[править] Настройка окружения; выбор версии по умолчанию
[править] shebang
В простейшем случае для использования какой-либо определенной версии Python достаточно явно указать версию в shebang. Например:
- использование версии 2.7
#!/usr/bin/python2.7 import sys print ("Content-type: text/html\n") print (sys.version)
- собственная версия
#!/home/virtwww/FTP_логин/local/bin/python import sys print ("Content-type: text/html\n") print (sys.version)
[править] Переменные окружения
Для полноценной работы приложения с нестандартным расположением Python и его библиотек необходимо настроить различные переменные окружения, которые, собственно, и будут указывать, где искать (или инсталлировать) тот или иной модуль.
Приведенные команды покажут, как настроить пути для собственной версии Python, пример установки которого приводился выше.
1. В файл ~/.bashrc с помощью редактора добавляем alias на нашу версию Python
alias python=$HOME/local/bin/python
а также PATH и PYTHONPATH
export PATH=$/local/bin:$/local/lib64/версия_python/site-packages:$ export PYTHONPATH=$/local/lib64/версия_python/site-packages:$
Таким образом полностью ваш ~/.bashrc может быть таким:
# /etc/skel/.bashrc # # This file is sourced by all *interactive* bash shells on startup, # including some apparently interactive shells such as scp and rcp # that can’t tolerate any output. So make sure this doesn’t display # anything or bad things will happen ! alias python=$HOME/local/bin/python # Test for an interactive shell. There is no need to set anything # past this point for scp and rcp, and it’s important to refrain from # outputting anything in those cases. if [[ $- != *i* ]] ; then # Shell is non-interactive. Be done now! return fi # Midnight Commander chdir enhancement if [ -f /usr/share/mc/mc.gentoo ]; then . /usr/share/mc/mc.gentoo fi # Put your fun stuff here. export PERL5LIB=$/perl/lib64/perl5:$/perl/lib64/perl5/site_perl:$/perl/lib64/perl5/vendor_perl export PATH=$/local/bin:$/local/lib64/python2.6/site-packages:$ export PYTHONPATH=$/local/lib64/python2.6/site-packages:$
Проверяем что получилось:
$ source ~/.bashrc
Команды должны показать одинаковый результат:
$ python -V Python 2.6.9 $ env python -V Python 2.6.9
2. Для того чтобы web-приложение использовало нашу версию Python, в shebang указываем полный путь:
#!/home/virtwww/FTP_логин/local/bin/python
Также потребуется указать PYTHONPATH, это можно сделать непосредственно в коде приложения, например, используя sys.path.insert или через .htaccess (работает только на типе сервера Apache/CGI, Apache/FastCGI)
SetEnv PYTHONPATH /полный_путь
[править] virtualenv
virtualenv пакет упрощающий создание окружения Python для вашего проекта (-ов). Он позволяет создать различные среды (своя версия Python, свой набор и версий библиотек) на одной площадке и полностью быть независимым от изменений общесистемных библиотек.
Следующие команды приведены для случая, когда установлена своя версия Python в домашний каталог и настроены переменные окружения в файле .bashrc, если используется системный Python, то для при установке virtualenv необходимо указать опцию —prefix (см. ниже пункт 3.1) и иметь настроенное окружение для установки пакетов свой домашний каталоге (подробнее см. ниже раздел «установка модулей»).
Рекомендуем использовать метод установки из статьи Django — быстрый старт (поддерживаемая версия) пункты 2-3 абзаца «подготовка окружения».
1. Итак, скачиваем с https://pypi.python.org/pypi/virtualenv последнюю версию пакета virtualenv
$ cd ~/src && wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.10.1.tar.gz
2. Распаковка:
$ tar xvfz virtualenv-*.tar.gz && cd virtualenv-*
3. Устанавливаем в ~/local, этот тот же каталог, куда ранее был установлен Python
$ python setup.py install
3.1. Если используется системный Python или не установлены соответствующие переменные окружения, то скрипту инсталляции нужно сообщить через опцию —prefix место установки и задать PYTHONPATH (подробнее см. ниже раздел «установка модулей»).
Например, ставим virtualenv в каталог ~/local
$ export PYTHONPATH=$HOME/local/lib64/python`python -c 'import sys; print (sys.version[:3])'`/site-packages && mkdir -p $PYTHONPATH $ python setup.py install --prefix=~/local
Основные опции при создании окружения командой:
—python — полный путь к интерпретатору python;
—clear — очистка существующего окружения, при этом будут удалены все ранее установленные модули в данное окружение;
—no-site-packages — не использовать модули установленные в системный каталог site-packages, эта опция включена по умолчанию;
—system-site-packages — использовать системные модули из каталога site-packages;
—prompt — имя окружения выводимое в переменной PROMPT шелла;
Создание нового окружения на основе ранее установленного Python:
$ virtualenv -p $HOME/local/bin/python myenv2.6
Перейти в созданное окружение:
$ source ~/myenv2.6/bin/activate
$ easy_install название_пакета
Установка Python 3 и настройка среды программирования в CentOS 8
Универсальный язык программирования Python можно использовать для самых разнообразных проектов. Разработчики Python назвали его в честь британской комедийной группы Monty Python и изначально ставили перед собой задачу сделать его забавным и интересным. Python все чаще используется для разработки самых разных приложений как начинающими, так и опытными разработчиками.
В этом обучающем руководстве вы узнаете об установке Python 3 на облачный сервер CentOS 8 и о настройке среды программирования через командную строку.
Предварительные требования
Вам потребуется сервер CentOS 8 с учетной записью non-root superuser.
Шаг 1 — Подготовка системы
Прежде чем мы начнем установку, обновим системные приложения по умолчанию, чтобы гарантированно использовать последние доступные версии.
Мы будем использовать диспетчер пакетов с открытым исходным кодом DNF (Dandified YUM), это новое поколение Yellowdog Updater, Modified (т. е. yum). Диспетчер пакетов DNF теперь используется по умолчанию в системах Linux на базе Red Hat, в том числе в CentOS. С его помощью вы сможете выполнять установку, обновление и удаление программных пакетов на вашем сервере.
Вначале проверим актуальность версии нашего диспетчера пакетов, запустив следующую команду:
Флаг -y сообщает системе, что мы знаем о внесении изменений, в результате чего терминал не запрашивает у нас подтверждений.
Когда все будет установлено, мы сможем перейти непосредственно к установке Python 3.
Шаг 2 — Установка и настройка Python 3
Операционная система CentOS основана на RHEL (Red Hat Enterprise Linux), и ее главной характеристикой является стабильность. В состав системы и загружаемых пакетов входят протестированные и стабильные версии приложений, и поэтому с помощью диспетчера пакетов CentOS вы найдете только более ранние версии Python, чем текущий выпуск.
Когда этот процесс будет завершен, мы можем проверить установку в номере версии, указываемом с помощью команды python3 :
После успешной установки Python 3 мы увидим следующий экран:
OutputPython 3.6.8
Далее мы установим инструменты CentOS для разработчиков, позволяющие собирать и компилировать программное обеспечение из исходного кода:
Затем мы сможем перейти к настройке проектов разработки на Python.
Шаг 3 — Настройка виртуальной среды
После установки Python и настройки системы мы можем перейти к созданию среды программирования с помощью venv.
Виртуальные среды позволяют выделять на компьютере изолированную область для проектов Python. Благодаря этому каждый из ваших проектов может иметь собственный набор зависимостей, которые не помешают функционированию других ваших проектов.
Создание среды программирования дает больший контроль над проектами Python, а также над различными пакетами и версиями. Это особенно важно при работе с пакетами сторонних разработчиков.
Вы можете настроить любое желаемое количество сред программирования Python. Каждая среда представляет собой директорию или папку на сервере, содержащую несколько скриптов, обеспечивающих ее работу.
Вначале выберем директорию, где мы хотим разместить наши среды программирования Python, или создадим такую директорию с помощью команды mkdir :
Для создания среды перейдите в директорию, где вы хотите разместить среды, и введите следующую команду: Используйте подходящее название среды, здесь мы используем название my_env .
В данном случает среда my_env и новая директория содержат несколько элементов, которые мы можем вывести, запустив команду ls в этой директории:
Outputbin include lib lib64 pyvenv.cfg
Совместная работа этих файлов обеспечивает изоляцию ваших проектов Python в более широком контексте вашего локального компьютера, так что системные файлы и файлы проекта не смешиваются. Будет очень полезно использовать контроль версий и обеспечить каждому из ваших проектов доступ к конкретным пакетам, которые ему необходимы.
Чтобы использовать эту среду, ее нужно активировать. Для этого введите следующую команду, вызывающую скрипт activate в директории bin :
В командной строке теперь будет отображаться имя вашей среды, в данном случае my_env :
Префикс сообщает нам, что среда my_env активна и что при создании программ они будут использовать настройки и пакеты этой конкретной среды.
Диспетчер пакетов Python pip уже установлен. Мы будем применять pip для установки программных пакетов Python и управления этими пакетами, которые мы будем использовать в наших проектах разработки. Пакеты Python устанавливаются с помощью следующей команды:
Здесь package_name может относиться к любому пакету или любой библиотеке Python, в том числе Django для веб-разработки или NumPy для научных вычислений. Если вы захотите установить NumPy, вы можете использовать команду pip install numpy .
Примечание. В виртуальной среде Python 3 вы можете использовать команду python вместо python3 и pip вместо pip3 . Если вы используете Python 3 или pip3 на компьютере вне среды, вы можете использовать только команды python3 и pip3 .
После выполнения этих шагов ваша виртуальная среда готова к использованию.
Шаг 4 — Создание программы «Hello, World!»
Теперь мы настроили нашу виртуальную среду и готовы создать традиционную программу «Hello, World!» для тестирования установки. Это обеспечит работоспособность нашей среды и даст нам возможность лучше познакомиться с Python, если мы еще не сделали этого.
Для этого откроем текстовый редактор командной строки (например, vi) и создадим новый файл:
Когда текстовый файл откроется в окне терминала, мы введем i для входа в режим вставки, после чего сможем написать нашу первую программу:
print("Hello, World!")
Нажмите ESC , чтобы выйти из режима вставки. Введите 😡 , а затем ENTER , чтобы сохранить и закрыть файл.
Теперь мы готовы к запуску нашей программы:
Программа hello.py, которую вы только что создали, выведет на терминале следующее:
OutputHello, World!
Для выхода из среды введите команду deactivate , и вы вернетесь в исходную директорию.
Заключение
Поздравляем! Вы установили среду программирования Python 3 на сервере CentOS 8 и можете начинать работу над проектом!
Подготовив компьютер к разработке, вы можете продолжить изучение программирования на Python, изучая нашу серию статей Программирование на Python или загрузив электронную книгу «Программирование на Python».
Чтобы узнать больше о проектах машинного обучения, прочитайте электронную книгу «Проекты машинного обучения на Python.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
PySide
Дистрибутив JetBrains PyCharm: http://www.jetbrains.com/pycharm/download, скачивать Community Edition.
Инструкция по установке на Windows
- Компьютер должен быть подключен к интернету.
- Войдите в систему с использованием учетной записи администратора.
- Установите Python версии 3.4.4 для 32-битной системы: https://www.python.org/ftp/pyt[..]4.4/python-3.4.4.msi.
- Установить последнюю версию Wing IDE 101 или PyCharm. В среде Wing IDE 101 интерпретатор Python выбирается в меню Edit -> Configure Python.
- Запустить командную строку (Пуск -> Стандартные -> Командная строка)
- В командной строке перейти в подкаталог scripts каталога, куда установлен Python командой
cd c:\Python34\scripts
pip install PySide
import PySide
print(PySide.__version__)
Как установить Python 3 на macOS в качестве версии по умолчанию
Есть несколько способов начать работу с Python 3 на macOS, однако не все они одинаково хороши. Сегодня мы рассмотрим, как правильно настроить среду, не нарушая ничего, встроенного в операционную систему macOS.
1. Установите pyenv
Использование неправильного решения может привести к неверному представлению о том, что выбор загружаемой версии Python зависит от псевдонимов в оболочке.
Как нам перестать заботиться о том, какая версия Python используется по умолчанию? Нужно использовать pyenv. Это инструмент для управления несколькими версиями Python. Он простой и вполне соответствует традициям Unix: предназначен для решения одной задачи, и решает ее хорошо.
Хотя доступны и другие варианты установки, проще всего начать следующим образом:
$ brew install pyenv ? /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB
2. Установите Python
Теперь давайте установим последнюю версию Python (здесь указана версия 3.7.3, однако на данный момент широко используется версия 3.8 и доступна версия 3.9):
$ pyenv install 3.7.3 python-build: use openssl 1.0 from homebrew python-build: use readline from homebrew Downloading Python-3.7.3.tar.xz. -> https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz Installing Python-3.7.3. ## дальнейший вывод не включен ##
3. Установите глобальное значение по умолчанию
Теперь, когда Python 3 установлен через pyenv, мы хотим установить его как нашу версию по умолчанию (глобально) для сред pyenv:
$ pyenv global 3.7.3 # проверим, сработало ли $ pyenv version 3.7.3 (set by /Users/mbbroberg/.pyenv/version)
Сила pyenv основана на том, что он контролирует путь нашей оболочки. Чтобы он работал правильно, нам нужно добавить следующее в наш файл конфигурации (мы использовали .zshrc, а вам, возможно, подойдет .bash_profile):
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
После этой команды наш файл (.zshrc для zsh или .bash_profile для Bash) должен включать следующие строки:
if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)" fi
Теперь мы точно знаем, что используем Python 3.7.3, и pip будет обновляться вместе с ним без какой-либо ручной настройки и конфликтов между версиями. Использование менеджера версий (pyenv) позволяет нам легко регулировать будущие обновления, не беспокоясь о том, какую версию Python мы используем в данный момент.
Успешный результат
Освоив этот рабочий процесс, вы сможете использовать pyenv для управления несколькими версиями Python.
Для управления зависимостями также важно использовать виртуальные среды. Тут нам пригодятся такие встроенные библиотеки, как venv и virtualenvwrapper.
Среда выполнения Python
Теперь, когда мы разобрались с версиями Python, можно углубиться в вопрос, почему эта проблема сбивает с толку так много людей.
Версия Python, поставляемая с macOS, сильно устарела по сравнению с тем, что Python рекомендует использовать для разработки. Как отмечает XKCD, размышления о выборе среды выполнения Python иногда могут быть до смешного сложными:

Многие пользователи держат десятки интерпретаторов Python на своих компьютерах, хотя понятия не имеют, как эффективно ими управлять.
Слишком часто люди просто загружают последнюю версию Python, помещают ее в свою переменную $PATH и на этом всё (или используют команду brew install python3 , которая делает примерно то же самое). Это может привести к поломкам и неисправностям, которые будет весьма сложно исправить.
Чего не стоит делать
Можно подумать, что, чтобы сделать Python 3 на macOS версией по умолчанию, нужно заменить старую версию и на новую:
# для начала найдем бинарный файл python $ which python /usr/bin/python # затем переименуем его, задав неиспользуемое имя $ sudo mv /usr/bin/python /usr/bin/python2 # наконец, переместим на предыдущий путь новый бинарный файл $ sudo mv $PATHTOBINARY/python3 /usr/bin/python
Этот шаблон соответствует тому, что обычно делает /usr/bin/ между основными выпусками Python, однако это неправильный ход:
$ sudo mv /usr/bin/python /usr/bin/python2 mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted
К счастью, macOS не дает сломать систему непродуманными действиями. Дальнейшие исследования вопроса показывают, что описанный выше способ не следует применять.
Что можно попробовать
Теперь, когда мы знаем, чего не следует делать, давайте посмотрим, что сделать можно. Когда мы думаем об общих шаблонах установки приложений в macOS, есть несколько вариантов.
Использовать Python 3 по умолчанию для macOS
На веб-сайте Python есть установщик macOS Python 3, который мы можем загрузить и использовать. Если мы воспользуемся установкой пакета, python3 будет доступен в /usr/local/bin/.
Поскольку двоичный файл Python, хранящийся в /usr/bin/, не может быть изменен, необходимы алиасы (псевдонимы). Что хорошо в псевдониме, так это то, что он специфичен для нашей оболочки командной строки. Поскольку по умолчанию мы используем zsh, мы помещаем в файл .zshrc следующее:
$ echo "alias python=/usr/local/bin/python3.7" >> ~/.zshrc
Если по умолчанию вы используете оболочку Bash, вы можете добавить следующий текст в свой .bashrc :
$ echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc
Эта стратегия работает, но она не идеальна для будущих обновлений Python. Это означает, что нам придется регулярно проверять сайт и загружать новые файлы, поскольку Python не включает в себя способ обновления из командной строки.
Доверить управление Homebrew
Проект Homebrew предоставляет бесплатный менеджер пакетов для macOS, на который полагаются многие люди. Он имеет открытый исходный код. Этот менеджер пакетов дает пользователям Apple возможности, аналогичные возможностям apt-get или yum.
Если вы являетесь пользователем Homebrew, возможно, у вас уже установлен Python. Чтобы быстро проверить это, запустите конвейер команд:
$ brew list | grep python python
Если в качестве результата вы получите python, значит, он установлен. Но какая это версия? Давайте проверим:
$ brew info python python: stable 3.7.3 (bottled), HEAD Interpreted, interactive, object-oriented programming language https://www.python.org/ /usr/local/Cellar/python/3.7.2_1 (8,437 files, 118MB) * ## дальнейший вывод не включен ##
Отлично! Мейнтейнеры Homebrew обновили Python bottle (бинарный пакет), чтобы он указывал на последний релиз. Поскольку мейнтейнеры Homebrew более ответственны в отношении обновления релиза, чем большинство из нас, мы можем использовать версию Python 3 от Homebrew с помощью следующей команды:
$ brew update && brew upgrade python
Теперь нам нужно, чтобы наш алиас указывал на копию Python, которой управляет Homebrew:
# Если вы добавляли предыдущий алиас, используйте текстовый редактор, чтобы обновить строку alias python=/usr/local/bin/python3
Чтобы убедиться, что приведенный выше путь указывает на то место, куда Homebrew установил Python в нашей среде, мы можем запустить brew info python и поискать информацию о пути.
Этот метод использования Homebrew для управления нашей средой Python является хорошей отправной точкой.
Что делать, если нам все еще нужен Python 2?
Для любого новичка в Python имеет смысл начинать сразу с Python 3. Но те из нас, кому все еще нужен Python 2 – например, для участия в проекте, где есть только Python 2, – могут продолжать использовать версию Python, доступную в macOS по умолчанию (путь — /usr/bin/python):
$ /usr/bin/python >>> print("This runtime still works!") This runtime still works!
Homebrew настолько хорош, что даже предлагает другую формулу для Python 2:
# Если вам нужен Python 2.7, запустите $ brew install python@2
Чтобы вернуться к использованию версии Python, которая установлена в системе по умолчанию, в любой момент можно удалить псевдонимы из файла конфигурации нашей оболочки.
Не забудьте обновить pip до версии pip3!
pip – это дефолтный менеджер пакетов Python. Хотя мы изменили нашу дефолтную команду python на третью версию, нужно также отдельно задать псевдоним нашей команде pip (если у нас предыдущая версия).
Для начала нужно проверить, какая, собственно, у нас версия:
# Обратите внимание, что буква V - заглавная $ pip -V pip 19.0.3 from /Library/Python/2.7/site-packages/pip-19.0.3-py2.7.egg/pip (python 2.7)
Чтобы устанавливать пакеты, наверняка совместимые с нашей новой версией Python, мы используем еще один алиас, указывающий на совместимую версию pip.
Поскольку в данной ситуации мы используем Homebrew в качестве менеджера пакетов, мы знаем, что он установил pip3 при установке Python 3. Путь по умолчанию должен быть таким же, как и в Python 3, но мы можем проверить это, попросив оболочку найти его:
$ which pip3 /usr/local/bin/pip3
Теперь, когда мы точно знаем местоположение, мы добавим его в наш файл конфигурации оболочки, как мы это делали раньше:
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc # для Bash: $ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc
Наконец, мы можем проверить, что запущенный pip указывает на pip3. Для этого нужно открыть новую оболочку или перезагрузить текущую и посмотреть, на сто указывает псевдоним:
# Эта команда перезагружает текущую оболочку без выхода из сессии # Альтернативный вариант - выйти из оболочки и начать новую сессию $ exec $0 # Теперь мы можем посмотреть, куда указывает pip $ which pip pip: aliased to /usr/local/bin/pip3
Мы можем избежать использования Homebrew для обновления pip, но для этого потребуется гораздо более подробное руководство, основанное на документации Python.
Заключение
Если вы только начинаете разработку на Python на macOS, выполните необходимые настройки, чтобы с самого начала использовать правильную версию Python.
Установка Python 3 с Homebrew или без него и использование псевдонима позволят вам начать программировать, но в долгосрочной перспективе это не лучшая стратегия.
Использование pyenv — простое решение для управления версиями. Оно станет отличной отправной точкой.
