В этой статье я попытаюсь описать процесс создания готового python окружения и работу с пакетами на пользовательском уровне. Статья расcчитана на новичков (в основном для студентов, слушающих мои курсы).
Задачи обычно возникающие при установки питона и его пакетов:
- Выбор дистрибутив питона и его установка
- Выбор IDE
- Поиск и установка пакетов
Кроме этого я пробегусь по этим полезным вещам:
- virtualenv
- lint'ы
- ipython
- pythonanywhere.com
Выбор дистрибутив питона и его установка
Если вы используете linux, то лучше использовать python идущий в пакетах - как правило это немного измененный cpython. Для windows можно выбирать между стандартным питоном и дистрибутивом от Active State. Последний содержит расширенную документацию и некоторые дополнительные библиотеки. Мы не будем рассматривать PyPy/Stackless/etc - ограничимся только CPython. Дальше нужно сделать выбор между двумя ветками - 3.2/3.3 и 2.7. Пока что с 2.7 у вас будет меньше проблем, но третья версия по поддержке уже подбирается достаточно близко. x86 и amd64 версии выбираем по вкусу. Установка и под windows и совершенно стандартна и не должна вызывать проблем. В linux питон уже почти 100% установлен.
Выбор IDE
Динамический характер языка делает написание функциональных IDE достаточно сложным, а высокая компактность кода и pythonic подход заметно уменьшает в них необходимость. Так что не сложные проекты можно делать в продвинутых текстовых редакторах - [notepad++], sublime text (или vim/emacs). Хотя новичкам IDE будут оказывать заметную помошь встроенной подсказкой и каким ни каким статическим анализом. Из IDE я бы выделил eclipse + pydev и платные PyCharm и KomodoIDE. Также есть Python tools for VS, которые добавляет поддержку cpython и ironpython в VS2010/VS2012.
Я бы советовал выбирать между sublime text и eclipse + pydev.
Поиск и установка пакетов
Пакеты/модули в python это файлы с расширениями py/pyc/pyo/(pyd или so), или директории с такими файлами. Также весь пакет может быть в одном архиве (только если пакет не содержит pyd/so файлы). По умолчанию пакеты устанавливаются в системную папку - PYTHON_ROOT\lib\site-packages для windows и /usr/local/lib/pythonXX/dist-packages для ubuntu (XX - версия питона, PYTHON_ROOT - корневая папка установки python, как правило С:\PythonXX)
Если вы используете linux, то можно использовать пакеты из дистрибутива - в Ubuntu/Fedora есть практически все. Иначе искать пакеты в основном стоит на pypi или с помощью google. Пакеты могут быть в трех основных форматах: архив, exe/msi, egg.
Архив нужно распаковать, в корневой папке должен быть файл setup.py. Если его там нет, то можно просто скопировать содержимое архива в директорию с пакетами. Если setup.py есть, то нужно выполнить python setup.py install. При этом следует использовать тот интерпретатор питона, в который вы хотите установить пакет. Если пакет не предоставляет модулей написанных на С/С++, то установка должна пройти без особенных проблем. Иначе python будет пытаться собрать компилируемые расширения. В linux такой процесс проходит чаще всего безболезненно (максимум требуется установка пакетов с заголовочными файлами для для используемых C библиотек), а вот в windows путь компиляции может быть достаточно трудным.
При установке в windows проще использовать уже собранный exe/msi файл. Для большинства пакетов они доступны на pypi или на сайте библиотеки, также много бинарных пакетов можно найти на pythonlibs. При загрузке обратите внимание на архитектуру и версию python. Для установки такие пакеты нужно запустить. Библиотеки не содержащие компилируемого кода уставливаются без проблем на обеих системах.
egg это формат пакетов одного из пакетные менеджеров питона - setuptools. Грубо говоря это zip архив с дополнительной информацией о пакете и его зависимостях. Более новой и активно развиваемой альтернативой setuptools является pip. pip использует код setuptools(или distribute) и не поддерживает egg. Оба этих менеджера умеют находить пакеты по имени на pypi, по URL и локально. Поддерживаются разнообразные форматы архивов и автоматическая установка зависимостей. pip умеет деинсталлировать пакеты и поддерживает установку из svn/git/mercurial.
Установка pip - www.pip-installer.org/en/latest/installing.html
- скачать и запустить python-distribute.org/distribute_setup.py
- скачать и запустить raw.github.com/pypa/pip/master/contrib/get-pip.py
Установка setuptools
- Скачать и запустить peak.telecommunity.com/dist/ez_setup.py
Оба этих менеджера предоставляют команду easy_install, pip кроме этого предоставляет команду pip.
Использование (примеры команд без их вывода):
Без подсветки синтаксиса# pip install pylint # установим pylint
# easy_install install -U pylint # обновить пакет
# pip install --upgrade simplejson
# pip uninstall simplejson # удалить
# pip install http://my.package.repo/SomePackage-1.0.4.zip
# pip install git+https://github.com/simplejson/simplejson.git
# pip install svn+svn://svn.zope.org/repos/main/zope.interface/trunk/
virtualenv
virtualenv позволяет делать на одной машине несколько независимых инсталляций python, каждая из которых имеет свой интерпретатор, набор настроек и библиотек. Некоторые из таких окружений могут использовать системную папку с дополнительными пакетами. Кроме этого virtualenv позволяет устанавливать питон и пакеты пользователям без прав root.
Без подсветки синтаксиса$ sudo pip install virtualenv # или sudo apt-get install python-virtualenv
$ virtualenv --distribute ENV_NAME # или python virtualenv.py --distribute ENV_NAME
--distribute заставить virtualenv установить distribute вместо setuptools.
Эта команда создаст папку ENV_NAME внутри которой будет интерпретатор python ENV_NAME/bin/python и каталог для пакетов ENV_NAME/lib/pythonX.X/site-packages. ENV_NAME/bin/python будет настроен на поиск пакетов в ENV_NAME/lib/pythonX.X/site-packages. Также virtualenv устанавливает в новое окружение pip. Что-бы активировать это окружений нужно исполнить скрипт activate.
Без подсветки синтаксиса$ source ENV_NAME/bin/activate
> ENV_NAME\Scripts\activate # для windows
Теперь команда python будет приводить к запуску питона из ENV_NAME/bin/python, то же относится и к pip. После окончания работы нужно выполнить deactivate. virtualenv включили в стандартную библиотеку начиная с python3.3
lint'ы
Линтами называют средства статического анализа по имени первой такой утилиты, которая находила странно написанные участки C кода, потенциально содержащие ошибки. Из-за динамического характера python сделать для него очень хороший линт невозможно, а даже просто хороший очень сложно. Ошибки при которых С программа даже не скомпилируется могут легко загнать в угол python линты. Но тем не менее значительную часть (а у начинающих - практически все) ошибок/опечаток они найдут.
Три основных lint'а для python это pylint, pychecker и pyflakes. Из них pylint, наверное, наиболее сообразительный. Кроме этого он имеет большое количество настроек, которые позволяют изменить особенности проверок. Также pylint проверяет стиль кода, используя шаблоны из конфигурационного файла и собирает полезную статистику. Плюс большая часть IDE и даже sublime имеют интеграцию с pylint.
По умолчанию pylint слишком требовательный так что начинать его использование стоит с подстройки конфига под себя, кроме этого иногда он дает ложные срабатывания.
Как более легкую альтернативу можно использовать pep8, проверяющий код на соответствие основному python стандарту кодирования.
ipython
Чуть подробнее о установке ipython. Под linux с правами root все просто (ubuntu):
Без подсветки синтаксиса$ sudo apt-get install ipython ipython-doc ipython-notebook ipython-qtconsole python-zmq
или
Без подсветки синтаксиса$ sudo apt-get install --install-suggests ipython
ipython готов к запуску -
Без подсветки синтаксиса$ ipython qtconsole # GUI консоль
$ ipython notebook # Web интерфейс
$ ipython # консольный интерфейс
Под windows все не так просто - нужно загрузить все пакеты и зависимости вручную и установить их. pip поможет не сильно, поскольку большая часть пакетов С расширения с внешними зависимости и собирать их будет лишней сложностью. Зависимости ipython (поскольку мы не будем использовать pip то их придется выяснять и устанавливать самостоятельно) можно определить двумя способами - найти в документации по установке или пытаться запускать ipython и смотреть на ошибки импорта. Из документации находим зависимости:
- pyqt или pyside
- pyzmq
- tornado
- pygments
- pyreadline
- distribute или setuptools
Бинарные версии всех этих пакетов есть в pythonlibs. Загружаем и ставим в любом порядке. После чего выбираем из:
Без подсветки синтаксиса> С:\Python2.7\Scripts\ipython.bat qtconsole # GUI консоль
> С:\Python2.7\Scripts\ipython.bat notebook # Web интерфейс
> С:\Python2.7\Scripts\ipython.bat # консольный интерфейс
pythonanywhere.com
Если поставить питон совсем никак нельзя, то можно воспользоваться web консолью на указанном сайте. После регистрации можно бесплатно запустить 2 python/ipython консоли в браузере и пробовать python без установки.
Ссылки:pypi.python.org/pypi/virtualenv
www.python.org/download
www.activestate.com/activepython/downloads
pypi.python.org/pypi
www.lfd.uci.edu/~gohlke/pythonlibs
www.pip-installer.org/en/latest/index.html
ipython.org/ipython-doc/stable/install/install.html
pychecker.sourceforge.net
pytools.codeplex.com
launchpad.net/pyflakes
www.python.org/dev/peps/pep-0008
pypi.python.org/pypi/pylint
pypi.python.org/pypi/pep8
www.jetbrains.com/pycharm
pydev.org
pypi.python.org/pypi/setuptools
www.sublimetext.com
www.activestate.com/komodo-ide
pythonanywhere.com
Исходники этого и других постов со скриптами лежат тут - github.com/koder-ua. При использовании их, пожалуйста, ссылайтесь на koder-ua.blogspot.com.
58 comments:
Thanks a lot very much for the high quality and results-oriented help. I won’t think twice to endorse your blog post to anybody who wants and needs support about this area.
Digital Marketing Training in Bangalore
digital marketing training in tambaram
digital marketing training in annanagar
digital marketing training in marathahalli
digital marketing training in rajajinagar
Digital Marketing online training
After reading this web site I am very satisfied simply because this site is providing comprehensive knowledge for you to audience. Thank you to the perform as well as discuss anything incredibly important in my opinion. We loose time waiting for your next article writing in addition to I beg one to get back to pay a visit to our website in
python training institute in chennai
python training in Bangalore
python training institute in chennai
Well somehow I got to read lots of articles on your blog. It’s amazing how interesting it is for me to visit you very often.
java training in marathahalli | java training in btm layout
java training in jayanagar | java training in electronic city
java training in chennai | java training in USA
selenium training in chennai
Some us know all relating to the compelling medium you present powerful steps on this blog and therefore strongly encourage contribution from other ones on this subject while our own child is truly discovering a great deal. Have fun with the remaining portion of the year.
Data Science training in rajaji nagar
Data Science training in chennai
Data Science training in electronic city
Data Science training in USA
Data science training in pune
Data science training in kalyan nagar
All are saying the same thing repeatedly, but in your blog I had a chance to get some useful and unique information, I love your writing style very much, I would like to suggest your blog in my dude circle, so keep on updates.
python training in pune
python online training
python training in OMR
I know you feel more happy when you get things done and best of all those things are your most precious treasure.
Blue Prism Training Course in Pune
Blue Prism Training Institute in Bangalore
I found your blog while searching for the updates, I am happy to be here. Very useful content and also easily understandable providing.. Believe me I did wrote an post about tutorials for beginners with reference of your blog.
java training in chennai
java training in marathahalli | java training in btm layout
Thanks you for sharing this unique useful information content with us. Really awesome work. keep on blogging
angularjs-Training in sholinganallur
angularjs-Training in velachery
angularjs Training in bangalore
angularjs Training in bangalore
angularjs Training in btm
Thanks for such a great article here. I was searching for something like this for quite a long time and at last I’ve found it on your blog. It was definitely interesting for me to read about their market situation nowadays. Well written article Thank You for Sharing with Us pmp training in velachery | pmp training class in chennai | pmp training fee | project management training certification | project management training in chennai
Existing without the answers to the difficulties you’ve sorted out through this guide is a critical case, as well as the kind which could have badly affected my entire career if I had not discovered your website.
safety course in chennai
Good Blog!!!....Thanks for Sharing!
Java Training in Chennai
Python Training in Chennai
IOT Training in Chennai
Selenium Training in Chennai
Data Science Training in Chennai
FSD Training in Chennai
MEAN Stack Training in Chennai
This is what I've been looking for a while. Great post! Thanks for sharing.
Mobile Testing Training in Chennai | Mobile Testing Course in Chennai | Mobile Automation Testing Training in Chennai | Mobile Testing Training | Mobile Application Testing Training | Mobile Apps Testing Training | Mobile Application Testing Training in Chennai | Mobile Appium Training in Chennai
I feel very glad to read your great blog. Thanks for sharing with us. Please keeping...
Ethical Hacking Course in Bangalore
Hacking Course in Bangalore
Ethical Hacking Training in Annanagar
Ethical Hacking Classes near me
Ethical Hacking Training in Tnagar
Ethical Hacking Course in Chennai
Thanks for your contribution in sharing such a useful information. Waiting for your further updates.
English Speaking Classes in Mulund
English Speaking Classes in Mulund West
English Speaking Course in Mulund
English Speaking Course in Mulund East
English Speaking Course in Mulund West
Best English Speaking Classes in Mulund West
English Speaking Classes Mulund
Thanks for sharing The Information The Information shared is very valuable Please keep Updating us Time Just went on redaing the article Python Online Training AWS Online Training Devops Online Training Data Science Online Training
Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.
devops online training
aws online training
data science with python online training
data science online training
rpa online training
Very nice blog. A great and very informative post, Keep up the good work!
ExcelR Data Science
I like viewing web sites which comprehend the price of delivering the excellent useful resource free of charge. I truly adored reading your posting. Thank you!
date analytics certification training courses
data science courses training
data analytics certification courses in Bangalore
ExcelR Data science courses in Bangalore
I quite like reading an article that can make people think. Also, thanks for allowing for me to comment!
machine learning course malaysia
I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts.
Data Science Course
Attend The Python training in bangalore From ExcelR. Practical Python training in bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Python training in bangalore.
python training in bangalore
Interested can attend the artificial Intelligence and Data Analytics training in Coimbatore and Bangalore
Data Analytics Training in Bangalore and Coimbatore
Data Analytics Training in Bangalore and Coimbatore
I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here. Big thumbs up for making such wonderful blog page! digital marketing course in singapore
Thank for sharing a great article. I wish I will find a more useful article from you
AWS Training in Chennai
Python Training in Chennai
i am for the first time here. I found this board and I in finding It truly helpful & it helped me out a lot. I hope to present something back and help others such as you helped me.
data analytics course malaysia
I Got Job in my dream company with decent 12 Lacks Per Annum salary, I have learned this world most demanding course out there in the current IT Market from the Hadoop training in btm Providers who helped me a lot to achieve my dreams comes true. Really worth trying
I learned World's Trending Technology from certified experts for free of cost.i Got job in decent Top MNC Company with handsome 14 LPA salary, i have learned the World's Trending Technology from Python training in pune experts who know advanced concepts which can helps to solve any type of Real time issues in the field of Python. Really worth trying instant approval blog commenting sites
Good Post.
digital marketing & web development company in Bhopal
This is really an awesome post, thanks for it. Keep adding more information to this.tableau training in bangalore
nice
gibraltar web hosting
iceland web hosting
lebanon web hosting
lithuania shared web hosting
inplant training in chennai
Very useful post...
python training in chennai
internships in hyderabad for cse 2nd year students
online inplant training
internships for aeronautical engineering students
kaashiv infotech internship review
report of summer internship in c++
cse internships in hyderabad
python internship
internship for civil engineering students in chennai
robotics course in chennai
Thank you for sharing this unique useful information content with us...
Digital Marketing Courses in Bangalore
Whatever we gathered information from the blogs, we should implement that in practically then only we can understand that exact thing clearly, but it’s no need to do it, because you have explained the concepts very well. It was crystal clear, keep sharing..
.
sap fico training
sap fico videos
Very good Post...
Coronavirus Update
Intern Ship In Chennai
Inplant Training In Chennai
Internship For CSE Students
Online Internships
Internship For MBA Students
ITO Internship
Great information
Intern Ship In Chennai
Inplant Training In Chennai
Internship For CSE Students
Coronavirus Update
Online Internships
Internship For MBA Students
ITO Internship
This is exactly the information I'm looking for, I couldn't have asked for a simpler read with great tips like this... Thanks! ExcelR Data Analytics Courses In Pune
I am happy to be here. Very useful content and also easily understandable providing . Believe me I did wrote an post about tutorials for beginners with reference of your blog.
python training in chennai
python course in chennai
python online training in chennai
python training in bangalore
python training in hyderabad
python online training
python training
python flask training
python flask online training
python training in coimbatore
Excellent piece of knowledge, I had come back to read concerning your web site from my friend shiva, bangalore. I have readed atleast eight posts of your website and let me tell you, your website provides the most fascinating information. This is the knowledge that I had been craving for, I am already your rss reader currently and that I would frequently be careful for the new posts.Data Science Training In Chennai
Data Science Online Training In Chennai
Data Science Training In Bangalore
Data Science Training In Hyderabad
Data Science Training In Coimbatore
Data Science Training
Data Science Online Training
Thank you for this post. Thats all I are able to say. You most absolutely have built this blog website into something speciel. You clearly know what you are working on, youve insured so many corners. Thanks
AI Training in Hyderabad
Nice article and thanks for sharing with us. Its very informative
Tableau Training in Hyderabad
Nice article and thanks for sharing with us. Its very informative
AI Training in Hyderabad
Nice article and thanks for sharing with us. Its very informative
DATA SCIENCE TRAINING IN HYDERABAD
This was definitely one of my favorite blogs. Every post published did impress me. ExcelR Data Analytics Courses
The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
python Training in chennai
python Course in chennai
Liên hệ Aivivu, đặt vé máy bay tham khảo
mua ve may bay di my
vé máy bay từ hàn quốc sang việt nam
vé máy bay từ vinh vào sài gòn
mua vé máy bay đi hà nội
săn vé máy bay đi quy nhơn
great article, Thanks for sharing this content.
Data Science Training in Pune
Join the Python Course in Hyderabad and participate in free workshops with AI Patasala. Candidates can pursue their dreams and reach the highest level in the field.
Python Institutes in Hyderabad
Thanks for posting the best information and the blog is very good .data science course in Lucknow
Excellent blog and I really glad to visit your post. Keep continuing...
internship meaning | internship meaning in tamil | internship work from home | internship certificate format | internship for students | internship letter | Internship completion certificate | internship program | internship certificate online | internship graphic design
Very informative article. Thank you for sharing with us.
Tamil romantic novels pdf
Ramanichandran novels PDF
srikala novels PDF
Mallika manivannan novels PDF
muthulakshmi raghavan novels PDF
Infaa Alocious Novels PDF
N Seethalakshmi Novels PDF
Sashi Murali Tamil Novels PDF
This post is so interactive and informative.keep update more information…
Tally Course in Anna Nagar
Tally course in Chennai
Thanks for such a great post and the review, I am totally impressed! Keep stuff like this coming.
data analytics courses in hyderabad with placements
Great post. keep sharing such a worthy information.
Google Analytics Training In Chennai
Google Analytics Online Course
Thanks for sharing this valuable information, we also provide pinterest video download and,
really appreciate your hard work and good research that help us in for of your good valuable article. Keep updating us with your awesome content.
Microsoft Office 2016 Product Key is the key that will provide you to work with Office 2016 professional plus. If you are using Office 365, you can easily Microsoft Office Professional 2016 Product Key
Nice Post.Thanks for the post.
Python Course in Nagpur
great, valuable post , i have learned many intresting thing about sql from your blog, thanks . keep posting and checking out my blog if your intresting in python course in satara
Post a Comment