Vim — уникальный по своей гибкости редактор, который при должной настройке может едва ли не идеально удовлетворять все пожелания работающего с ним. Правда эта настройка может продолжаться месяцы, а то и годы, что является и достоинством, и недостатком vim’а. Существует множество статей и туториалов по использованию Vim для разработки на Python и Django, надеюсь мне удастся рассказать что-то новое. В своей статье я постараюсь по минимуму упоминать плагины общего назначения, вроде NERDTree или surround.vim и опишу несколько более специализированных расширений и настроек, которые существенно упростили процесс работы на Python.



Настроить Vim под Django оказалось делом довольно непростым, в отличие от использования с тем же Rails, для которого rails.vim решает 80% всех проблем. Но к сожалению Tim Pope ничего подобного для питона не написал, поэтому пришлось собирать все по частям. Вкратце, о чем пойдет речь:


  • python-mode

  • tagbar

  • pydiction

  • neocomplcache

Все ниженаписанное было опробовано в gVim для Linux.



Python-mode


Просто низкий поклон Кириллу Клёнову, разработчику данного расширения. Отлично устанавливается и с помощью vundle, и через pathogen и так же отлично работает.



Python-mode устанавливает свои настройки для питон-файлов. Если вас это не устраивает (мне например не нужен set number, который он добавляет), допишите необходимые настройки в .vimrc. Вот пример моих настроек:



let g:pymode_options = 0
let g:pymode_lint_write = 0 “не проверять при каждом сохранении
let g:pymode_folding = 0 “мне не нужен авто-фолдинг
let g:pymode_rope_vim_completion = 0 “не использовать автодополнение rope


Как можно увидеть, я не использую автоматический фолдинг кода, также мне не нужна проверка pylint'ом при каждом сохранении файла(let g:pymode_lint_write = 0), вместо чего можно использовать команду :PyLint, повесив на нее какой-нибудь хоткей. К автодополнению вернемся позже.



Плагин предоставляет несколько удобных хоткеев для перемещения по объектам в питон-коде:

Сочетание клавиш Команда
K Показать документацию
<C-c>g Перейти к определению
\r Запустить код
[[ Перейти к предыдущему классу или функции
]] Перейти к следующему классу или функции
aC C Выполнить действие для класса. (vaC, daC, dC, yaC, yC, caC, cC)
iC То же, находясь внутри класса. (viC, diC, yiC, ciC)
aM M Выполнить действие для функции. (vaM, daM, dM, yaM, yM, caM, cM)
iM То же, находясь внутри функции. (viM, diM, yiM, ciM)
Отдельно хотелось бы отметить возможность использовать Rope, в частности команды :RopeGoToDefinition, :RopeFindOccurrences и другие возможности по поиску кода и рефакторингу. просмотреть полный список команд Rope и сокращения к ним можно с помощью :help RopeKeys. Кроме того по умолчанию включена поддержка virtualenv, что значит, что с помощью того же :RopeGoToDefinition вы можете спокойно перейти к определнию функции любой библиотеки, установленной в site-packages вашего virtualenv’а.



Просмотр кода


Хотя самым популярным плагином для этого является Taglist, мне больше нравится Tagbar, также основанный на ctags(которые нужно установить перед использованием плагина). Вешаем :TagbarToggle на какой-нибудь хоткей, например:
nnoremap <F8> :TagbarToggle<CR>
Выглядит это примерно так:







Пара дополнительных настроек:



let g:tagbar_autofocus = 1
let g:tagbar_sort = 0 "tagbar shows tags in order of they created in file
let g:tagbar_foldlevel = 0 "close tagbar folds by default


Кроме того можно настроить, с какой стороны будет появляться окно тагбара, какими будут отступы, иконки и т.д. Обо всем этом можно узнать через :help tagbar.



Автодополнение


Один из плагинов, который я мог бы посоветовать — Pydiction, дополняющий ключевые слова на основе большого файла словаря. У данного плагина очень много плюсов:


  • автодополнение происходит по клавише Tab, не нужно запоминать всякие комбинации с Ctrl

  • абсолютно никаких конфликтов, можно одновременно использовать Pydiction с omnicomplete

  • автодополнение не затрагивает другие типы файлов

  • умеет дополнять импортированные объекты

  • довольно легко можно добавить в словарь собственные модули: python pydiction.py module_name

Минус по большому счету только один, но очень существенный на мой взгляд — Pydiction не подхватывает ключевые слова из текущего файла, а это часто бывает гораздо нужнее, чем функции Питона, которые и так знаешь.



Другой способ — использовать neocomplcache. Кроме установки плагина, нужно задать omnifunc для питоновских файлов:

autocmd FileType python setlocal omnifunc=pythoncomplete#Complete


Neocomplcache несколько хуже справляется с дополнением из модулей, зато дополняет не только ключевые слова из текущих файлов, но и просто строки. Кроме того присутствует опция автоматически всплывающего дополнения, которое включается с помощью задания настройки:

let g:neocomplcache_enable_at_startup = 1


Шаблоны Django


Vim подерживает синтаксис джанго-шаблонов и подсвечивает их, если задать файлу тип htmldjango. К сожалению автоматически при открытии Vim определяет этот тип только если в начале файла находится джанго-тэг. Решить это можно например с помощью такой функции:



fun! DetectTemplate()
  let n = 1
  while n < line("$")
    if getline(n) =~ '{%' || getline(n) =~ '{{'
      set ft=htmldjango
      return
    endif
    let n = n + 1
  endwhile
  set ft=html "default html
endfun


которую нужно запускать при открытии файла с раширением .html:

autocmd BufNewFile,BufRead *.html call DetectTemplate()


Если вы используете несколько шаблонизаторов, функцию несложно модифицировать под них, правда следует сделать условия определения типа шаблонизатора более строгими.



Случайные настройки




  • Питоновские отступы:
    autocmd FileType python setlocal ts=4 sts=4 sw=4
    




  • Если вы пользуетесь NERDTree, стоит добавить .pyc в список игнорируемых файлов:
    let NERDTreeIgnore=['\.pyc$']
    




  • простое сокращение для вставки дебаггера ipdb в код
    iab ipdb import ipdb; ipdb.set_trace()
    




  • сокращение для задания кодировки в начале файла:
    iab utf! # -*- coding: utf-8 -*-
    




  • убрать раздражающие всплывающие окна с документацией для omnicompletion:
    set completeopt-=preview
    




  • пара цветовых схем:darkspectrum, gruvbox, Lucius



Дополнительные ссылки


1. python-mode

github.com/klen/python-mode

2. Tagbar

github.com/majutsushi/tagbar

3. Pydiction

github.com/rkulla/pydiction

4. Neocomplcache

github.com/Shougo/neocomplcache





















































https://habrahabr.ru/post/173473/


image

Данная статья будет посвящена настройке vim, в которой я поделюсь своим «скромным» пониманием того, каким должен быть текстовый редактор, чтобы в нем было удобно/приятно/легко (нужное подчеркнуть) писать код также, как это сейчас возможно во всевозможных IDE типа PyCharm, SublimeText и т.п.

Весь процесс постараюсь описать как можно более подробно, чтобы вопросов по мере чтения для начинающих осваивать vim возникало как можно меньше.



Предыстория
Сам я знаком с vim не очень продолжительное время, однако, к его изучению и желанию использовать привело:


  • достаточное количество на хабре статей по vim

  • большое количество существующих плагинов

  • преимущественно, разработчики на Python занимаются написанием кода под Linux (хотя vim — кроссплатформенный)

  • собственное любопытство



В настоящее время я использую весьма часто vim как основной инструмент для разработки на Python и нисколько об этом не жалею. Если чего-либо нехватает, то проблема решается гуглением в течении пару минут. Поверьте, vim действительно стоит тех затраченных сил на его изучения. Это достаточно быстро себя «окупает». Было бы только желание и немножечко терпения.



Подготовительный этап
Итак. Перейдем непосредственно к подготовительному этапу. Нам понадобится:


  1. Vim версии 7.4 (получить нужное можно либо скачиванием из репозиториев, либо сборкой вручную)

  2. Python 2.7 (с установленным pip)

  3. Клиент для работы с git



После того, как вышеперечисленное у нас имеется, можно приступать непосредственно к настройке и «кастомизации».



Настройка


Самое первой проблемой для любого новичка, который решает обуздать vim, является vimscript. Vimscript — это скриптовый язык, предназначенный для vim. На нем мы будем описывать используемые плагины, горячие клавиши и все тому подобное, чтобы обеспечить себе простую и легкую работу в vim. Для ознакомления советую посетить вот этот и этот сайты. Там достаточно неплохо все описано, что, где, как, и почему.



Первым делом стоит рассказать о том, что конфигурационный файл vim находится в домашнем каталоге пользователя (~/) и называется .vimrc. В нем-то и будут расписываться моменты относительно того, какие шрифты, цветовая схема, хоткеи и т.п. будут использоваться.



Во-вторых, при настойке текстового редактора, иногда будет необходимо заходить в каталог .vim (это скрытый каталог, и он расположен также в домашнем каталоге юзера), в который будут помещен ряд необходимых файлов, рассортированных по каталогам.

Какие включает в себя подкаталоги исходный каталог .vim? Примерно такие:

.vim

|____after

|____autoload

|____colors

|____doc

|____ftplugin

|____indent

|____plugin

|____scripts

|____syntax



Однако, из всех вышеперечисленных каталогов нам понадобится лишь несколько:


  • colors — для цветовых схем/тем

  • indent — сюда будет скидывать файлы для работы с тегами HTML/XML и т.п.

  • scripts — для скриптов

  • syntax — файлы синтаксиса



В эти каталоги помещаем соответствующие файлы, взяв их, например, у меня.



До начала установки и работа с менеджером пакетов пропишем в консоли:

pip install pyflakes pep8 pylint ipython


В дальнейшем, эти библиотеки нам пригодятся для того, чтобы отслеживать качество своего кода: ошибки, соответствие его PEP8 и т.п. Последняя же в этом списке библиотека/пакет — ipython нам будет удобна для настройки своего «дебаггера».

Также нам еще необходимо установить Exuberant ctags. Скачать его можно отсюда либо поискать и установить через менеджер пакетов apt-get/aptitude/rmp/pacman/и т.п.



Менеджер плагинов


Для того, чтобы нам было проще с установкой и использованием плагином будем использовать Vundle. Vundle — это пакетный менеджер для Vim, способный:


  • настраивать и устанавливать плагины, указанные в. vimrc

  • обновлять плагины при необходимости

  • удалять неиспользуемые плагины



Однако прежде чем приступать к описанию необходимого набора плагинов в конфигурационном файле, сначала необходимо установить сам Vundle. Для этого делаем следующее:



git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim


После выполнение этой команды Vundle будет установлен в ~/.vim/bundle/Vundle.vim



Теперь добавим следующую часть в свой новосозданный .vimrc если его еще нет:



set nocompatible              " be iMproved, required
filetype off                  " required

"=====================================================
" Vundle settings
"=====================================================
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'		" let Vundle manage Vundle, required

"---------=== Code/project navigation ===-------------
Plugin 'scrooloose/nerdtree' 	    	" Project and file navigation
Plugin 'majutsushi/tagbar'          	" Class/module browser

"------------------=== Other ===----------------------
Plugin 'bling/vim-airline'   	    	" Lean & mean status/tabline for vim
Plugin 'fisadev/FixedTaskList.vim'  	" Pending tasks list
Plugin 'rosenfeld/conque-term'      	" Consoles as buffers
Plugin 'tpope/vim-surround'	   	" Parentheses, brackets, quotes, XML tags, and more

"--------------=== Snippets support ===---------------
Plugin 'garbas/vim-snipmate'		" Snippets manager
Plugin 'MarcWeber/vim-addon-mw-utils'	" dependencies #1
Plugin 'tomtom/tlib_vim'		" dependencies #2
Plugin 'honza/vim-snippets'		" snippets repo

"---------------=== Languages support ===-------------
" --- Python ---
Plugin 'klen/python-mode'	        " Python mode (docs, refactor, lints, highlighting, run and ipdb and more)
Plugin 'davidhalter/jedi-vim' 		" Jedi-vim autocomplete plugin
Plugin 'mitsuhiko/vim-jinja'		" Jinja support for vim
Plugin 'mitsuhiko/vim-python-combined'  " Combined Python 2/3 for Vim

call vundle#end()            		" required
filetype on
filetype plugin on
filetype plugin indent on


Как вы видите, места где указаны Plugin 'ссылка_до_плагина' представляет собой ссылки в интернете эти плагины, которые Vundle будет скачивать и в последствии устанавливать. Для себя, я разбивал эти плагины на «категории», но это уже дело вкуса. Сами плагины:


  • NERDTree — навигация по файловой/директориям

  • TagBar — навигация по классам/функциям/переменным

  • vim-airline — строка статуса/состояния

  • FixedTaskList — поиск в файле FIXME, TODO и т.п.

  • conque-term — используем для вызова дебаггера

  • vim-surround — автозакрытие тегов HML/XML/и т.п.

  • vim-snipmate — сниппеты

  • python-mode — рефакторинг, документация, дебаггер Python и т.п.

  • jedi-vim — автодополнение для Python

  • vim-jinja — поддержка синтаксиса шаблонов Jinja



В качестве руководства/гайда по использованию Vundle можно зайти сюда. Однако для наших целей будет предостаточно одной:

:PluginInstall


Эта команда сканирует файл .vimrc на наличие списка плагинов прописанных в виде Plugin 'ссылка_до_плагина'.

Для того, чтобы запустить установку набора плагинов, заходим в vim/gvim и прописываем :PluginInstall. Придется немного подождать, поскольку каждый плагин, указанный выше в конфиге, будет скачан с githuba либо еще откуда-то и настроен до установок «по умолчанию», подождите пару минут. Каждый выкачанный и настроенный плагин отмечается как "+". Как только увидите, что все из списка подсвечены "+" — значит, все готово. И для дальнейшего использования необходимо будет перезапустить vim. Однако на этом все еще не оканчивается статья — все необходимо «подкрутить», чтобы работать в vim'е было комфортно.



Общие настройки vim'а
Эти настройки для меня являются базовыми. Тут я указываю свои предпочтения относительно парочки плагинов, размера шрифтов, цветовой схемы, отображаемых элементов и т.п.

Добавьте эти строчки в конец своего .vimrc файла:

"=====================================================
" General settings
"=====================================================
set backspace=indent,eol,start
aunmenu Help.
aunmenu Window.
let no_buffers_menu=1
set mousemodel=popup

set ruler
set completeopt-=preview
set gcr=a:blinkon0
if has("gui_running")
  set cursorline
endif
set ttyfast

" включить подсветку кода
syntax on
if has("gui_running")
" GUI? устаналиваем тему и размер окна
  set lines=50 columns=125
  colorscheme molokai
" раскомментируйте эти строки, если хотите, чтобы NERDTree/TagBar автоматически отображались при запуске vim
" autocmd vimenter * TagbarToggle
" autocmd vimenter * NERDTree
" autocmd vimenter * if !argc() | NERDTree | endif

" на маке vim?
if has("mac")
  set guifont=Consolas:h13
  set fuoptions=maxvert,maxhorz
else
" дефолтный GUI
  set guifont=Ubuntu\ Mono\ derivative\ Powerline\ 10
endif
else
" терминал?
  colorscheme myterm
endif

tab sball
set switchbuf=useopen

" отключаем пищалку и мигание
set visualbell t_vb= 
set novisualbell       

set enc=utf-8	     " utf-8 по дефолту в файлах
set ls=2             " всегда показываем статусбар
set incsearch	     " инкреминтируемый поиск
set hlsearch	     " подсветка результатов поиска
set nu	             " показывать номера строк
set scrolloff=5	     " 5 строк при скролле за раз

" отключаем бэкапы и своп-файлы
set nobackup 	     " no backup files
set nowritebackup    " only in case you don't want a backup file while editing
set noswapfile 	     " no swap files

" прячем панельки
"set guioptions-=m   " меню
set guioptions-=T    " тулбар
"set guioptions-=r   "  скроллбары

" настройка на Tab
set smarttab
set tabstop=8

"  при переходе за границу в 80 символов в Ruby/Python/js/C/C++ подсвечиваем на темном фоне текст
augroup vimrc_autocmds
    autocmd!
    autocmd FileType ruby,python,javascript,c,cpp highlight Excess ctermbg=DarkGrey guibg=Black
    autocmd FileType ruby,python,javascript,c,cpp match Excess /\%80v.*/
    autocmd FileType ruby,python,javascript,c,cpp set nowrap
augroup END

" указываем каталог с настройками SnipMate
let g:snippets_dir = "~/.vim/vim-snippets/snippets"

" настройки Vim-Airline
set laststatus=2
let g:airline_theme='badwolf'
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'

" TagBar настройки
map <F4> :TagbarToggle<CR>
let g:tagbar_autofocus = 0 " автофокус на Tagbar при открытии

" NerdTree настройки
" показать NERDTree на F3
map <F3> :NERDTreeToggle<CR>
"игноррируемые файлы с расширениями
let NERDTreeIgnore=['\~$', '\.pyc$', '\.pyo$', '\.class$', 'pip-log\.txt$', '\.o$']  

" TaskList настройки
map <F2> :TaskList<CR> 	   " отобразить список тасков на F2

" Работа буфферами
map <C-q> :bd<CR> 	   " CTRL+Q - закрыть текущий буффер


Python-mode
Очень нравится этот плагинчик, который кстати, сделан klen. Предоставляет море возможностей при работе с кодом:


  • рефакторинг

  • автодополнение

  • работа с дебаггером

  • автофикс PEP8 ошибок

  • и многое-многое другое...



Добавьте эти строчки в конец своего .vimrc файла:

"=====================================================
" Python-mode settings
"=====================================================
" отключаем автокомплит по коду (у нас вместо него используется jedi-vim)
let g:pymode_rope = 0
let g:pymode_rope_completion = 0
let g:pymode_rope_complete_on_dot = 0

" документация
let g:pymode_doc = 0
let g:pymode_doc_key = 'K'
" проверка кода
let g:pymode_lint = 1
let g:pymode_lint_checker = "pyflakes,pep8"
let g:pymode_lint_ignore="E501,W601,C0110"
" провека кода после сохранения
let g:pymode_lint_write = 1

" поддержка virtualenv
let g:pymode_virtualenv = 1

" установка breakpoints
let g:pymode_breakpoint = 1
let g:pymode_breakpoint_key = '<leader>b'

" подстветка синтаксиса
let g:pymode_syntax = 1
let g:pymode_syntax_all = 1
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all

" отключить autofold по коду
let g:pymode_folding = 0

" возможность запускать код
let g:pymode_run = 0


Jedi-vim
Очень полезный плагин, предоставляющий отличные возможности автокомплита, go to definition, и т.п.

В своем конфиге добавьте в конец этот фрагмент:

" Disable choose first function/method at autocomplete
let g:jedi#popup_select_first = 0


Этой строчкой я отрубаю в автокомплите выбор первой строки из списка выбора метода/библиотеки/класса автокомплита. Это связано с тем, что достаточно часто я выбираю не первую строку из нее, а автоматический выбор раздражает.



После настройки jedi-vim получаем отображение документации по функции

image

и добротный автокомплит по аргументам функций

image



Хоткеи
Тут сложно что-либо посоветовать. У всех различное понимание того, какие хоткеи нужны, а какие-нет. Могу лишь сказать, что для желающих, найти/написать необходимые кусочки vimscript, переопределяющих поведение стандартных горячих клавиш — очень много.

Добавьте этот фрагмент в конец конфига:

"=====================================================
" User hotkeys
"=====================================================
" ConqueTerm
" запуск интерпретатора на F5
nnoremap <F5> :ConqueTermSplit ipython<CR>
" а debug-mode на <F6>
nnoremap <F6> :exe "ConqueTermSplit ipython " . expand("%")<CR>
let g:ConqueTerm_StartMessages = 0
let g:ConqueTerm_CloseOnEnd = 0
" проверка кода в соответствии с PEP8 через <leader>8
autocmd FileType python map <buffer> <leader>8 :PymodeLint<CR>

" автокомплит через <Ctrl+Space>
inoremap <C-space> <C-x><C-o>

" переключение между синтаксисами
nnoremap <leader>Th :set ft=htmljinja<CR>
nnoremap <leader>Tp :set ft=python<CR>
nnoremap <leader>Tj :set ft=javascript<CR>
nnoremap <leader>Tc :set ft=css<CR>
nnoremap <leader>Td :set ft=django<CR>


Отступы, табы, пробелы для разных языков
Это связано с тем, что в том же Python табы не рекомендуется к использованию. Поэтому будем заменять их на пробелы. Один таб = 4 пробелам. Плюс ко всему необходимо помнить, что всегда нужно сделать переход на следующую строку + отступ, чтобы было соответствие операторам for/if/while/и т.п.

Для других языков предостаточно будет указать размер Таба, и замены их на пробелы.

Добавьте этот фрагмент в конец своего конфига:

"=====================================================
" Languages support
"=====================================================
" --- Python ---
"autocmd FileType python set completeopt-=preview " раскомментируйте, в случае, если не надо, чтобы jedi-vim показывал документацию по методу/классу
autocmd FileType python setlocal expandtab shiftwidth=4 tabstop=8
\ formatoptions+=croq softtabstop=4 smartindent
\ cinwords=if,elif,else,for,while,try,except,finally,def,class,with
autocmd FileType pyrex setlocal expandtab shiftwidth=4 tabstop=8 softtabstop=4 smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class,with

" --- JavaScript ---
let javascript_enable_domhtmlcss=1
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd BufNewFile,BufRead *.json setlocal ft=javascript

" --- HTML ---
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

" --- template language support (SGML / XML too) ---
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako setlocal expandtab shiftwidth=2 tabstop=2 softtabstop=2
autocmd bufnewfile,bufread *.rhtml setlocal ft=eruby
autocmd BufNewFile,BufRead *.mako setlocal ft=mako
autocmd BufNewFile,BufRead *.tmpl setlocal ft=htmljinja
autocmd BufNewFile,BufRead *.py_tmpl setlocal ft=python
let html_no_rendering=1
let g:closetag_default_xml=1
let g:sparkupNextMapping='<c-l>'
autocmd FileType html,htmldjango,htmljinja,eruby,mako let b:closetag_html_style=1
autocmd FileType html,xhtml,xml,htmldjango,htmljinja,eruby,mako source ~/.vim/scripts/closetag.vim

" --- CSS ---
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType css setlocal expandtab shiftwidth=4 tabstop=4 softtabstop=4


Подведение итогов
После прохождения столь длительного процесса настройки у нас получился достаточно гибкий инструмент для работы с Python. При этом, последующая установка, на другие ПК будет представлять только доустановку необходимых библиотек, переноса соответствующего конфига и установку плагинов.



После настройки мы получим примерно такой vim:

image

В режиме работы с HTML/JavaScript/XML будет все выглядеть примерно так:

image



Если кому-либо нужен больший функционал (например поддержка автокомплита для любых иных языков), то могу посоветовать лишь поискать необходимые плагины на GitHub'е или на офицальном сайте сайте vim'a.



Полезные ссылки:
Раздел script сайта vim.org — тут

wikia по vim'у — тут

OpenVim: уроки по азам в vim — тут

Шрифты для vim-airline — тут



Мой конфиг для vim на GitHub































































































https://habrahabr.ru/post/224979/
http://freecoder.ru/content/vim-kak-ide-dlya-razrabotki-na-python
http://linux.cpms.ru/?p=8339


В данной статье рассматривается бесплатный хостинг для django проектов - pythonanywhere.com.
Для начала заходим на сайт - https://www.pythonanywhere.com/pricing/
Находим и кликаем по ссылке Create a Beginner account
Открывается форма регистрации. В ней вводим данные для регистрации (имя, почта, пароль). После регистрации нас просят подтвердить почту, что и необходимо сделать.Read more... )
http://pygo.ru/django/base/django-hosting-pythonanywhere.html
http://uzverss.livejournal.com/58379.html



Ставим пакеты stdeb и python-all:
$ sudo apt-get install stdeb python-all
Теперь находим архив с нужным нам модулем на pypi.python.org и скачиваем его себе:
$ wget https://pypi.python.org/packages/source/g/grab/grab-0.6.30.tar.gz
Теперь можно заглянуть в документацию на stdeb и посмотреть, как это делается.
Read more... )
http://vladimir-stupin.blogspot.ru/2013/10/deb-python.html
https://pypi.python.org/pypi/stdeb
https://blog.truecrux.org/post/xxxiii





Сайты



https://www.djangoproject.com/
http://djbook.ru/
http://djangosearch.com/
https://www.djangosites.org/
https://www.django-cms.org/


Статьи



Наш опыт работы с Django, или 10 полезных модулей, облегчающих жизнь
Эффективный Django. Часть 1
Ещё 10 батареек для джанго
Django DB Mailer — простая и удобная батарейка, для отправки почтовых сообщений в вашем проекте
Улучшаем админку
DjangoCMS2.0 — быстрее, больше, эффективней
Удобная работа с картинками в Django
Шаблон проекта на Джанго с инструментами сборки и утилитами
Простой блог с комментариями на Django: разработка и развертывание для самых маленьких
https://github.com/lampslave/blog
Полезные Django-модули
Полезные Django apps
Разработка своего плагина для Django-CMS
Создаем свое первое веб-приложение при помощи Django

http://www.lexev.org/2013/django-project-beginning-working-server/
https://pythonhosted.org/redsolutioncms/module_from_scratch.html
https://www.8host.com/blog/ustanovka-veb-frejmvorka-django-v-ubuntu-14-04/
http://it-obzor.com/blog/aliev/delaem-iz-sublime-text-3-ide-dlya-python-i-django
http://pygo.ru/django/base/django-hosting-pythonanywhere.html
https://pythlife.blogspot.ru/search/label/django
http://zabaykin.ru/?tag=django
http://www.unix-lab.org/posts/django-first-steps/
https://support.hoster.by/index.php?/Knowledgebase/Article/View/148/0/ustnovk-django
http://spb-tut.ru/guest/pages/189/
https://www.sinyawskiy.ru/feincms.html
https://azure.microsoft.com/ru-ru/documentation/articles/web-sites-python-create-deploy-django-app/
https://maxdrive.by/news/sozdanie-sitemapxml-v-django/
http://itvdn.com/ru/blog/article/it-itvdn-project-django-angular


Блоги



https://vk.com/django_framework
http://django-tutorial.blogspot.ru/
https://pythlife.blogspot.ru/search/label/django
http://www.lexev.org/tag/django/
http://www.odmin4eg.ru/tag/django/
http://sharelink.ru/
http://dikiigrigorii.ru/


Книги



http://padabum.net/search.php?tag=Django
http://scanlibs.com/tag/django/
ftp Django1
ftp Django2


Подборки



https://vk.com/wall-101965347?q=django
https://vk.com/wall-80984752?q=Django
https://habrahabr.ru/hub/django/
https://toster.ru/tag/django/info
http://snakeproject.ru/rubric/rubric.php?id=5
http://djangosimple.blogspot.ru/search/label/django
http://podavan.ru/tag/django/
http://acman.ru/django/
http://pep8.ru/blog/tag/django
https://www.8host.com/blog/tag/django/
https://code-live.ru/tag/django/
http://m05quit0.ru/tag/django/
http://www.odmin4eg.ru/tag/django/
http://dikiigrigorii.ru/articles/tag/django/
http://webdevelop.info/category/django/
http://knigun.com/tags/django/
http://pygo.ru/
http://practice.keyfire.ru/blog/tags/praktikum/
http://webdevelop.info/category/django/
http://programmingnew.tk/blog/veb_django/1-0-3


Переводы



https://rtfm.co.ua/books-translations/django-book/


Самоучители



http://djbook.ru/rel1.9/intro/
http://ilnurgi1.ru/docs/django/
http://tutorial.djangogirls.org/ru/
http://www.tutorialspoint.com/django/index.htm
http://snakeproject.ru/python/ver1.3.htm
https://pythonhosted.org/redsolutioncms/index.html
http://ait-susu.narod.ru/django.htm
https://rtfm.co.ua/django-primer-sozdaniya-prilozheniya-chast-1-sozdanie-zapusk-proekta/
http://zavx0z-django.blogspot.ru/
http://peterhudec.github.io/authomatic/examples/django-simple.html
http://cultofdigits.com/articles/django-cms/
http://spb-tut.ru/
http://vits.pro/info/django-cms/
http://cultofdigits.com/articles/django-cms/
http://djangosimple.blogspot.ru/
https://evileg.com/ru/knowledge/django/


Шпоры



http://students.summerisgone.com/help/django_extras.html
http://ilnurgi1.ru/docs/django/templates.html
https://docs.django-cms.org
https://github.com/dikiigr/django-online-shop
http://dikiigrigorii.ru/articles/tag/django/


Курсы



https://mva.microsoft.com/ru/training-courses/-python-django-11415
DJANGO - РАЗРАБОТКА WEB-ПРИЛОЖЕНИЙ
НОУ «ИНТУИТ» Введение в Django
НОУ «ИНТУИТ» Технопарк Mail.ru Group: Web-технологии
Python + Django Framework школа практического программирования В. Бовсуновского
http://itman.in/uroki-django/


Видео



https://vk.com/video?q=django%20python§ion=search
------------------------------------------------------------------------
intopython.ru Первая статическая страница в джанго
https://www.youtube.com/watch?v=Iw-CzupverM
------------------------------------------------------------------------
GeekBrains Django Построение веб приложений на Python
https://www.youtube.com/watch?v=UnmZMJv4ox8
------------------------------------------------------------------------
ITVDN Вебинар на тему "Создание первого веб-сайта при помощи Python и Django"
https://github.com/aqrln/itvdn-django-webinar
https://www.youtube.com/watch?v=IZqBTPmxoew
------------------------------------------------------------------------
Susan Ibach and Christopher Harrison Уроки Python
https://www.youtube.com/channel/UCsSQgz9oCdVyvZ-bViMj4_g
------------------------------------------------------------------------
shadrus Django
https://www.youtube.com/playlist?list=PLpTASIMYgCp8supkEmnnrYa5xi9g91ZPI
Mihail Kozlov Python
https://www.youtube.com/playlist?list=PL5KGx5_ykLX8qOlP1CaxxlTXKOZhIvfZl
------------------------------------------------------------------------
кузьма кузин как создать сайт на Django Python
https://www.youtube.com/playlist?list=PLk3dllNv0g252fFKpiYeJaSRwEpBzhUcu
------------------------------------------------------------------------
Coding Medved Джанго с нуля на примере создания простого интернет-магазина
https://www.youtube.com/playlist?list=PLSWnD6rL-m9adebgpvvOLH5ASGJiznWdg
Coding Medved GoUpworkIntensive
https://www.youtube.com/playlist?list=PLSWnD6rL-m9Zn2JaIfdWA35IpBCwuzS4s
------------------------------------------------------------------------
Vitaly Pavlenko Веб-программирование на Физтехе
https://www.youtube.com/playlist?list=PLzQrZe3EemP5KsgWGnmC0QrOzQqjg3Kd5
------------------------------------------------------------------------
Владимир Доминион Django - разработка web-приложений
https://www.youtube.com/playlist?list=PLw9iStk1sia9yEiv5b7-Flxg6kTE2FAEL
Владимир Доминион Django1.8
https://www.youtube.com/playlist?list=PLw9iStk1sia9Nw2ENJRr3d9B30q8E9iI4
Владимир Доминион DJANGO-CMS
https://www.youtube.com/playlist?list=PLw9iStk1sia_DbiSqOwpiNE2I-QM_8RMf
------------------------------------------------------------------------
Anton Maistrenko Django Введение
https://www.youtube.com/playlist?list=PLH9GfV-TK38h6crIqlzJ__xRocwVgMhyV
Anton Maistrenko Django Models
https://www.youtube.com/playlist?list=PLH9GfV-TK38iNIWn-YCiz0mtK59gfBkOV
Anton Maistrenko Django Project
https://www.youtube.com/playlist?list=PLH9GfV-TK38iyjZeW4lw8xssm3UoBAiA3
------------------------------------------------------------------------
ProgrammingHub Python + Django web framewrok
https://www.youtube.com/playlist?list=PLPRsICSqu9FoOpFyr8dlfLh9_n4nt_05u
------------------------------------------------------------------------
WeBest Django
https://www.youtube.com/playlist?list=PLfAlku7WMht6echneod-yj9BNx5zaRkJo
------------------------------------------------------------------------
Python и Django по-простому Понравившиеся
https://www.youtube.com/playlist?list=LLIVVEmrGyqEleoFbayEHLrg
------------------------------------------------------------------------
Moscow Python
https://www.youtube.com/user/moscowdjangoru/playlists
------------------------------------------------------------------------
Django API + React + Electron | Course Work
https://www.liveedu.tv/dikiigr/
------------------------------------------------------------------------
Phantomium Разработка на Python, Django.
https://www.youtube.com/playlist?list=PL6Fp8QPl6sOi0FXf1XNjt4bNDBJ0wGdGF
------------------------------------------------------------------------


Программное обеспечение



https://github.com/django/
https://pypi.python.org/pypi?:action=browse&show=all&c=523
https://pypi.python.org/pypi/Django
http://awesome-django.com/
https://djangopackages.org/

полезные дополнения

https://github.com/django-admin-tools/django-admin-tools
https://github.com/sehmaschine/django-grappelli
https://github.com/divio/django-cms
https://github.com/nephila/djangocms-installer
https://github.com/megamark16/django-cms-themes
https://github.com/thomaspark/bootswatch
https://github.com/anymail/django-anymail
https://github.com/darklow/django-suit
https://github.com/LPgenerator/django-db-mailer
https://github.com/sehmaschine/django-filebrowser
http://atmb4u.github.io/django-console/
https://github.com/selectel/pyte
https://github.com/eliangcs/http-prompt
http://free-templates.ru/


Консоль



https://www.pythonanywhere.com/


Посмотреть исходный код



https://github.com/django/django
http://nullege.com/codes/search/django
https://searchcode.com/?q=django

локально )
$ python
>>> import django
>>> print(django.__path__)


Вопросы, ответы, решения



http://python.su/forum/21/
http://www.cyberforum.ru/python-web/
https://readthedocs.org/search/?q=django
http://stofl-ru.com/tags/django

Pythonix. Первоначальная настройка

установка Django в virtualenv с помощью pip через proxy
Установка веб-фреймворка Django в Ubuntu
Делаем из Sublime Text 3 IDE для Python и Django
Sublime Text 3 и консоль python


Питоновские пакеты отличный способ повторного использования кода. Если один и тот же код вы уже в третий раз копируете в очередной проект, самое время вынести этот код в отдельный модуль. А еще лучше будет собрать питоновский пакет, который потом будет устанавливаться одной командой.

Read more... )
http://ishalyapin.ru/собираем-питоновский-пакет-и-выклады/



испробовав разные способы я нашёл этот самым оптимальнымRead more... )
http://itnovella.ru/itnovella/2014/01/16/nastroyki-proksi-v-debian-gnu-linux.html
http://pythonworld.ru/osnovy/pip.html
https://pip.pypa.io/en/stable/reference/pip_install/#pip-install-options
https://qa.mchost.ru/q/ustanovka-bibliotek-python-v-domashniy-katalog
http://askubuntu.com/questions/250929/pythonpath-environment-variable
«pip -t» — простая альтернатива virtualenv
Создание deb-пакетов для модулей Python
http://snakeproject.ru/rubric/article.php?art=django19p01
http://defindit.com/ascii.html
Одно-строчные скрипты SED - Ant0
Полезные одно-строчные скрипты sed (sed shell)
http://asvetlov.blogspot.ru/2014/05/pip.html
http://python.cx/blog/article/PyPi_pip_python
http://eax.me/python-virtualenv/
Питон в коробке – venv в python 3.3
https://docs.python.org/dev/library/venv.html
https://khashtamov.com/2015/12/pyenv-python/
http://proft.me/2010/04/3/python-i-okruzhenie-virtualenv/
https://russianpenguin.ru/2015/04/05/разработка-на-python-с-использованием-virtualenv/
http://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
http://spb-tut.ru/guest/pages/189/
https://www.sinyawskiy.ru/feincms.html
http://vits.pro/info/django-cms/
http://cultofdigits.com/articles/django-cms/
12 не годных cms или как я выбирал нам cms на python — и ничего не выбрал.

uzverss Установка веб-фреймворка Django в Ubuntu
uzverss консоль python в роли командной строки

Новый год — самое время для легких извращений. Хотя для тебя, читающего эту статью практически весной, год уже не новый, да и сама идея изучения вируса, написанного на питоне, может показаться вовсе даже не легким извращением…

Read more... )
https://xakep.ru/2011/03/13/55980/

Python — один из наиболее популярных языков программирования, превзошедший по популярности по индексу TIOBE язык PHP.
Синтаксис Python может показаться странным по началу, особенно для разработчиков на Java. Некоторые фрагменты кода используются довольно часто, но для новичков их воспроизведение может оказаться не под силу. Такие фрагменты называют «идиомами». Их прочтение может оказаться зачастую полезным для изучения нового языка программирования. В этой статье мы познакомим вас с некоторыми из наиболее популярными фрагментами кода.


Read more... )

Profile

uzverss: (Default)
uzverss

May 2017

S M T W T F S
 123456
7 8910111213
14151617 181920
21222324252627
28293031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2017 02:41 pm
Powered by Dreamwidth Studios