Установка Pillow на Python 3 под Windows
PythonНиже приведен рабочий пример (у меня сработало на версиях 3.5 и 3.4) установки модуля Pillow.
Для установки нам понадобится Python версии 3.5 или 3.4 (на версии 3.6 на сегодняшний день 28.12.2016 — не работает)
Скачиваем, устанавливаем — в этом я думаю трудностей не возникнет.
Далее, устанавливать модуль будем с помощью PIP, но…
Далее всё действие происходит в командной строке:
Для начала выполним вот эту команду:
python -m pip install --upgrade pip wheel setuptools
(без нее, ну никак не «заведётся»)
Затем всё просто:
pip3 install pillow
Вот и всё! Комментировать...
Настраиваем кодировки в Visual Studio для Python
PythonВообщем ситуация такая. Решил я поизучать Python. Посмотрел разные среды разработки, и решил остановиться на уже знакомой и уютненькой Visual Studio, тем более, что по работе в основном на C# писать приходится, установлена, удобная, привычная. Короче приступил к написанию своего первого Hello World-а.
Написал вот такое:
name = input ('Введите слово: ')
print ('Ваше слово ', name)
И вместо русских букв в консоли увидел кракозябры. :(
Покопав немного «интернеты», нашёл рекомендацию указывать кодировку в начале файла так:
# -*- condig: utf-8 -*-
Сделал, не помогло… :(
Стал копать дальше.
Студия фалы сохраняет по умолчанию в кодировке Win1251 — ага!!! подумал я!!!
Правим:
File -> Advanced Save Options

Это действие уже помогло, но лишь частично. По команде print русский текст стал выводиться корректно. А вот текст в команде input остался кракозябрами.
Но и этой проблеме решение есть:
Tools -> Options -> Pyton Tools -> Debugging

Убираем галочку «Tee program output to Debug Output window»
После этого действия всё работает корректно, буквы русские во всех случаях.
Мне помогло, надеюсь и вам поможет. Комментировать...
Руководство по Python Bottle (Перевод) Часть 1 - Установка
PythonЭто руководство познакомит вас с концепциями и возможностями фреймворка Bottle. Данное руководство можно читать от начала и до конца, как учебный материал для ознакомления. Также можно использовать руководство как справочник для ознакомления с интересующими особенностями фреймворка Bottle.
Данное руководство является адаптированным переводом информации с ресурса BOTTLEPY.ORG от 20.04.2017г.
В руководстве местами содержатся некоторые мои комментарии и дополнения. Поэтому, это не дословный перевод, но надеюсь достаточно качественный.
Итак, приступим.
Руководство по Python Bottle (Перевод) Часть 2 - Hello World
PythonВ предыдущей части мы рассмотрели установку Bottle:
Руководство по Python Bottle (Перевод) Часть 1 — Установка
В этой части мы пойдем дальше и рассмотрим простой пример приложения сайта «Hello World».
2. Простой пример («Hello World!»)
Здесь предполагается что у вас уже установлен Bottle, либо библиотека скопирована в папку проекта.Начнем с очень простого примера «Hello World!»:
Создание Hello World на Bottle...
Python python 3 bottle руководство tutorial перевод hello world route
Руководство по Python Bottle (Перевод) Часть 5 - Request Data (данные в запросе)
PythonВ предыдущей части (Руководство по Python Bottle (Перевод) Часть 4 — Создание контента) мы рассмотрели основные аспекты относящиеся к передаваемому контенту, в этой части мы рассмотрим данные передаваемые в запросах.
Файлы Cookie, HTTP-заголовки, поля HTML форм и другие данные запроса доступны через глобальный объект request. Этот специальный объект всегда ссылается на текущий запрос, даже в многопоточных средах, где одновременно обрабатываются сразу несколько клиентских подключений:
from bottle import request, route, template
@route('/hello')
def hello():
name = request.cookies.username or 'Guest'
return template('Привет {{name}}', name=name)
Объект request является подклассом от BaseRequest и имеет очень богатый API для доступа к данным. Здесь будут рассмотрены только наиболее часто используемые функции, этого должно быть достаточно для начала.
Читаль далее...
Руководство по Python Bottle (Перевод) Часть 6 - Templates (о Шаблонах)
PythonВ предыдущей части (Руководство по Python Bottle (Перевод) Часть 5 — Request Data (данные в запросе)) мы рассмотрели основные аспекты относящиеся к передаваемым данным в запросах, в этой части мы вкратце рассмотрим использование шаблонов.
Bottle имеет быстрый и мощный встроенный механизм шаблонов, который называется SimpleTemplate Engine. Для рендеринга шаблона вы можете использовать функцию template() или декоратор view(). Все, что вам нужно сделать, это предоставить имя шаблона и переменные, которые вы хотите передать шаблону в качестве аргументов. Вот простой пример того, как обратиться к шаблону:
@route('/hello')
@route('/hello/<name>')
def hello(name='World'):
return template('hello_template', name=name)
Данный код загрузит файл шаблона hello_template.tpl и отобразит его с установленной переменной name. Bottle будет искать шаблоны в папке ./views/ или в любой папке, указанной в списке bottle.TEMPLATE_PATH.
Читаль далее...
Руководство по Python Bottle (Перевод) Часть 3 - Маршрутизация запросов
PythonВ предыдущей части (Руководство по Python Bottle (Перевод) Часть 2 — Hello World) мы создали простое Web приложение, с одним единственным маршрутом, вот та часть кода с маршрутизацией из примера «Hello WOrld»:
@route('/hello')
def hello():
return "Hello World!"
В этом примере декоратор route() связывает URL путь с вызываемой функцией, и добавляет новый маршрут.
Теперь давайте добавим ещё один маршрут:
@route('/')
@route('/hello/<name>')
def greet(name='Незнакомец'):
return template('Здравствуй {{name}}, как дела?', name=name)
(Не забываем ипортировать необходимые библиотеки: from bottle import template)
Данный пример демонстрирует сразу две важные вещи: Вы можете привязывать более одного маршрута к одной вызываемой функции, и вы можете добавлять шаблоны URL адресов и получать доступ к параметрам по ключевым словам.
Читаль далее...
Руководство по Python Bottle (Перевод) Часть 4 - Создание контента
PythonВ предыдущей части (Руководство по Python Bottle (Перевод) Часть 3 — Маршрутизация запросов) мы рассмотрели основные аспекты касающиеся маршрутизации запросов, в этой части будут рассмотрены аспекты относящиеся к передаваемому контенту.
Создание контента
В чистом стандарте WSGI диапазон возвращаемых из приложения типов очень ограничен. Приложения должны возвращать строки с возможностью разбиения их на набор байт. Можно вернуть строку (разбив её на части), но большинство серверов это заставляет передавать контент символ за символом. Строки в Unicode не допускаются вообще. Это не очень практично.
Bottle гораздо более гибок и поддерживает широкий спектр типов. Он автоматически добавляет заголовок Content-Length, когда это возможно, и автоматически кодирует Unicode, что облегчает работу разработчика. Ниже приведен список типов данных, которые могут быть возвращены из приложения, и краткое описание того, как они обрабатываются платформой:
Читаль далее...
Ошибка - UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: inval id character
PythonОщибка: UnicodeEncodeError: 'mbcs' codec can't encode characters in position 0--1: inval id character
Происходит при попытке запустить проект командой: python manage.py runserver
Лечение:
Ищем файл: python\lib\site-packages\django\utils\autoreload.py
Затем добавляем в функцию restart_with_reloader строчку:
new_environ['PATH'] = os.path.abspath(new_environ['PATH'].encode('ascii', 'replace'))
Должно получиться как-то так:
def restart_with_reloader():
while True:
args = [sys.executable] + ['-W%s' % o for o in sys.warnoptions] + sys.argv
if sys.platform == "win32":
args = ['"%s"' % arg for arg in args]
new_environ = os.environ.copy()
new_environ["RUN_MAIN"] = 'true'
new_environ['PATH'] = os.path.abspath(new_environ['PATH'].encode('ascii', 'replace'))
exit_code = os.spawnve(os.P_WAIT, sys.executable, args, new_environ)
if exit_code != 3:
return exit_code
После этих изменений, лично у меня всё заработало, Python 3.4 + Windows 10.
Надеюсь и у вас всё получится. Комментировать...