Як поставити 2 версії Python

Зміст:

Загальні поширені запитання щодо Python¶

Python — це інтерпретована, інтерактивна, об’єктно-орієнтована мова програмування. Він містить модулі, винятки, динамічну типізацію, динамічні типи даних дуже високого рівня та класи. Він підтримує кілька парадигм програмування, окрім об’єктно-орієнтованого програмування, наприклад процедурне та функціональне програмування. Python поєднує в собі надзвичайну потужність із дуже чітким синтаксисом. Він має інтерфейси для багатьох системних викликів і бібліотек, а також для різних віконних систем і розширюється на C або C++. Його також можна використовувати як мову розширення для програм, яким потрібен програмований інтерфейс. Нарешті, Python портативний: він працює на багатьох варіантах Unix, включаючи Linux і macOS, а також на Windows.

Щоб дізнатися більше, почніть з Підручник з Python . Посібник для початківців з Python містить посилання на інші вступні посібники та ресурси для вивчення Python.

Що таке Python Software Foundation?¶

Python Software Foundation — це незалежна некомерційна організація, яка володіє авторськими правами на Python версії 2.1 і новіших. Місія PSF полягає в тому, щоб просувати технологію з відкритим кодом, пов’язану з мовою програмування Python, і оприлюднювати використання Python. Домашня сторінка PSF знаходиться за адресою https://www.python.org/psf/.

Пожертви на користь PSF звільняються від податків у США. Якщо ви використовуєте Python і вважаєте його корисним, зробіть свій внесок через сторінку пожертв PSF.

Чи існують обмеження авторського права на використання Python?¶

Ви можете робити з вихідним кодом усе, що завгодно, за умови, що ви залишите авторські права та відобразите ці авторські права в будь-якій документації щодо Python, яку ви створюєте. Якщо ви дотримуєтеся правил авторського права, можна використовувати Python для комерційного використання, продавати копії Python у вихідній чи двійковій формі (модифікованій чи немодифікованій) або продавати продукти, які в тій чи іншій формі містять Python. Звичайно, ми все ще хотіли б знати про комерційне використання Python.

See the license page to find further explanations and the full text of the PSF License.

Логотип Python є торговою маркою, і в деяких випадках для його використання потрібен дозвіл. Зверніться до Політики використання торговельних марок для отримання додаткової інформації.

Чому взагалі був створений Python?¶

Ось дуже короткий виклад того, з чого все почалося, написаний Гвідо ван Россумом:

У мене був великий досвід впровадження мови інтерпретації в групі ABC у CWI, і, працюючи з цією групою, я багато чого дізнався про мовний дизайн. Це походження багатьох функцій Python, включаючи використання відступів для групування операторів і включення типів даних дуже високого рівня (хоча всі деталі в Python різні).

У мене було кілька нарікань щодо мови ABC, але мені також сподобалися багато її функцій. Неможливо було розширити мову ABC (або її реалізацію), щоб виправити мої скарги – насправді її відсутність розширюваності була однією з найбільших проблем. У мене був певний досвід використання Modula-2+, я поспілкувався з розробниками Modula-3 і прочитав звіт Modula-3. Modula-3 є джерелом синтаксису та семантики, які використовуються для винятків, а також деяких інших функцій Python.

Я працював у групі розподілених операційних систем Amoeba в CWI. Нам потрібен був кращий спосіб адміністрування системи, ніж написання програм на C або сценаріїв оболонки Bourne, оскільки Amoeba мала власний інтерфейс системних викликів, до якого було важко отримати доступ із оболонки Bourne. Мій досвід обробки помилок в Amoeba дав мені чітке усвідомлення важливості винятків як функції мови програмування.

Мені спало на думку, що мова сценаріїв із синтаксисом, подібним до ABC, але з доступом до системних викликів Amoeba, задовольнить цю потребу. Я зрозумів, що було б нерозумно писати мову, специфічну для Amoeba, тому я вирішив, що мені потрібна мова, яка загалом розширювана.

Під час різдвяних свят 1989 року в мене було багато часу, тож я вирішив спробувати. Протягом наступного року, хоча я все ще здебільшого працював над ним у свій час, Python використовувався в проекті Amoeba з дедалі більшим успіхом, і відгуки колег змусили мене додати багато перших покращень.

У лютому 1991 року, після трохи більше ніж року розробки, я вирішив опублікувати повідомлення в USENET. Решта у файлі Misc/HISTORY .

Чим корисний Python?¶

Python — це мова програмування високого рівня загального призначення, яку можна застосовувати до багатьох різних класів задач.

The language comes with a large standard library that covers areas such as string processing (regular expressions, Unicode, calculating differences between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), software engineering (unit testing, logging, profiling, parsing Python code), and operating system interfaces (system calls, filesystems, TCP/IP sockets). Look at the table of contents for Стандартна бібліотека Python to get an idea of what’s available. A wide variety of third-party extensions are also available. Consult the Python Package Index to find packages of interest to you.

Як працює схема нумерації версій Python?¶

Python versions are numbered «A.B.C» or «A.B»:

  • A is the major version number – it is only incremented for really major changes in the language.
  • B is the minor version number – it is incremented for less earth-shattering changes.
  • C is the micro version number – it is incremented for each bugfix release.

See PEP 6 for more information about bugfix releases.

Not all releases are bugfix releases. In the run-up to a new feature release, a series of development releases are made, denoted as alpha, beta, or release candidate. Alphas are early releases in which interfaces aren’t yet finalized; it’s not unexpected to see an interface change between two alpha releases. Betas are more stable, preserving existing interfaces but possibly adding new modules, and release candidates are frozen, making no changes except as needed to fix critical bugs.

Alpha, beta and release candidate versions have an additional suffix:

  • The suffix for an alpha version is «aN» for some small number N.
  • The suffix for a beta version is «bN» for some small number N.
  • The suffix for a release candidate version is «rcN» for some small number N.

In other words, all versions labeled 2.0aN precede the versions labeled 2.0bN, which precede versions labeled 2.0rcN, and those precede 2.0.

Ви також можете знайти номери версій із суфіксом «+», напр. «2,2+». Це неопубліковані версії, створені безпосередньо з репозиторію розробки CPython. На практиці, після створення остаточного мінорного випуску, версія збільшується до наступної мінорної версії, яка стає версією «a0», напр. «2.4a0».

Як отримати копію вихідного коду Python?¶

Найновіший вихідний код Python завжди доступний на сайті python.org за адресою https://www.python.org/downloads/. Останні джерела розробки можна отримати на https://github.com/python/cpython/.

Дистрибутив вихідного коду — це файл tar у форматі gzip, що містить повний вихідний код C, документацію у форматі Sphinx, модулі бібліотеки Python, приклади програм і кілька корисних частин програмного забезпечення, яке вільно розповсюджується. Джерело компілюється та запускається з коробки на більшості платформ UNIX.

Зверніться до розділу Початок роботи Посібника розробника Python, щоб дізнатися більше про отримання вихідного коду та його компіляцію.

Як отримати документацію на Python?¶

Стандартна документація для поточної стабільної версії Python доступна за адресою https://docs.python.org/3/. PDF, звичайний текст і HTML-версії для завантаження також доступні за адресою https://docs.python.org/3/download.html.

The documentation is written in reStructuredText and processed by the Sphinx documentation tool. The reStructuredText source for the documentation is part of the Python source distribution.

Я ніколи раніше не програмував. Чи є підручник з Python?¶

Доступно багато підручників і книг. Стандартна документація включає Підручник з Python .

Зверніться до Посібника для початківців, щоб знайти інформацію для початківців програмістів Python, включаючи списки навчальних посібників.

Чи існує група новин або список розсилки, присвячений Python?¶

Є група новин comp.lang.python і список розсилки python-list. Група новин і список розсилки пов’язані один з одним — якщо ви можете читати новини, немає необхідності підписуватися на список розсилки. comp.lang.python має високий трафік, отримує сотні публікацій щодня, і читачам Usenet часто легше впоратися з цим обсягом.

Announcements of new software releases and events can be found in comp.lang.python.announce, a low-traffic moderated list that receives about five postings per day. It’s available as the python-announce mailing list.

Додаткову інформацію про інші списки розсилки та групи новин можна знайти на https://www.python.org/community/lists/.

Як отримати тестову бета-версію Python?¶

Альфа- та бета-версії доступні за адресою https://www.python.org/downloads/. Усі випуски оголошуються в групах новин comp.lang.python і comp.lang.python.announce, а також на домашній сторінці Python за адресою https://www.python.org/; доступна RSS-канал новин.

Ви також можете отримати доступ до версії Python для розробки через Git. Перегляньте Посібник розробника Python для отримання додаткової інформації.

Як надіслати звіти про помилки та виправлення для Python?¶

To report a bug or submit a patch, use the issue tracker at https://github.com/python/cpython/issues.

Щоб дізнатися більше про те, як розробляється Python, зверніться до Посібника розробника Python.

Чи є опубліковані статті про Python, на які я можу посилатися?¶

Мабуть, найкраще процитувати вашу улюблену книгу про Python.

The very first article about Python was written in 1991 and is now quite outdated.

Гвідо ван Россум і Джелке де Бур, «Інтерактивне тестування віддалених серверів за допомогою мови програмування Python», CWI Quarterly, том 4, випуск 4 (грудень 1991), Амстердам, стор. 283–303.

Чи є книги про Python?¶

Так, їх багато, і публікується більше. Перегляньте список у вікі python.org за адресою https://wiki.python.org/moin/PythonBooks.

Ви також можете шукати в книжкових онлайн-магазинах «Python» і відфільтрувати посилання на Monty Python; або, можливо, шукайте «Python» і «мова».

Де у світі знаходиться www.python.org?¶

The Python project’s infrastructure is located all over the world and is managed by the Python Infrastructure Team. Details here.

Чому він називається Python?¶

Коли Гвідо ван Россум почав впроваджувати Python, він також читав опубліковані сценарії з «Летючого цирку Монті Пайтона», комедійного серіалу BBC 1970-х років. Ван Россум подумав, що йому потрібна коротка, унікальна та трохи загадкова назва, тому він вирішив назвати мову Python.

Чи обов’язково мені повинен подобатись «Летючий цирк Монті Пайтона»?¶

Ні, але допомагає. 🙂

Python у реальному світі¶

Наскільки стабільний Python?¶

Very stable. New, stable releases have been coming out roughly every 6 to 18 months since 1991, and this seems likely to continue. As of version 3.9, Python will have a new feature release every 12 months ( PEP 602).

The developers issue bugfix releases of older versions, so the stability of existing releases gradually improves. Bugfix releases, indicated by a third component of the version number (e.g. 3.5.3, 3.6.2), are managed for stability; only fixes for known problems are included in a bugfix release, and it’s guaranteed that interfaces will remain the same throughout a series of bugfix releases.

The latest stable releases can always be found on the Python download page. There are two production-ready versions of Python: 2.x and 3.x. The recommended version is 3.x, which is supported by most widely used libraries. Although 2.x is still widely used, it is not maintained anymore.

Скільки людей використовують Python?¶

Ймовірно, є мільйони користувачів, хоча важко отримати точну кількість.

Python доступний для безкоштовного завантаження, тому немає даних про продажі, і він доступний на багатьох різних сайтах і входить до складу багатьох дистрибутивів Linux, тому статистика завантажень також не говорить усієї історії.

Група новин comp.lang.python дуже активна, але не всі користувачі Python пишають у групі або навіть читають її.

Чи були якісь значні проекти виконані на Python?¶

Див. https://www.python.org/about/success, щоб переглянути список проектів, які використовують Python. Перегляд матеріалів минулих конференцій Python покаже внески багатьох різних компаній і організацій.

High-profile Python projects include the Mailman mailing list manager and the Zope application server. Several Linux distributions, most notably Red Hat, have written part or all of their installer and system administration software in Python. Companies that use Python internally include Google, Yahoo, and Lucasfilm Ltd.

Які нові розробки очікуються для Python у майбутньому?¶

See https://peps.python.org/ for the Python Enhancement Proposals (PEPs). PEPs are design documents describing a suggested new feature for Python, providing a concise technical specification and a rationale. Look for a PEP titled «Python X.Y Release Schedule», where X.Y is a version that hasn’t been publicly released yet.

New development is discussed on the python-dev mailing list.

Чи розумно пропонувати несумісні зміни в Python?¶

Загалом ні. По всьому світу вже існують мільйони рядків коду Python, тому будь-яку зміну в мові, яка робить недійсною більш ніж дуже малу частину існуючих програм, слід сприймати несхвально. Навіть якщо ви можете надати програму перетворення, все одно залишається проблема оновлення всієї документації; Про Python написано багато книжок, і ми не хочемо скасувати їх усі одним ударом.

Надання поступового шляху оновлення є необхідним, якщо функцію потрібно змінити. PEP 5 описує процедуру введення змін, несумісних із попередніми версіями, мінімізуючи перешкоди для користувачів.

Чи є Python хорошою мовою для програмістів-початківців?¶

Досі прийнято починати студентів із процедурної та статично типізованої мови, такої як Pascal, C або підмножини C++ чи Java. Студентам краще буде вивчати Python як першу мову. Python має дуже простий і послідовний синтаксис і велику стандартну бібліотеку, і, що найважливіше, використання Python на початковому курсі програмування дозволяє студентам зосередитися на важливих навичках програмування, таких як декомпозиція задачі та проектування типів даних. За допомогою Python студенти можуть швидко познайомитися з основними поняттями, такими як цикли та процедури. Ймовірно, вони навіть можуть працювати з об’єктами, визначеними користувачем, у своєму першому курсі.

Для студента, який ніколи раніше не програмував, використання статично типізованої мови виглядає неприродним. Це створює додаткову складність, яку студент повинен освоїти, і уповільнює темп курсу. Студенти намагаються навчитися мислити як комп’ютер, декомпонувати проблеми, проектувати послідовні інтерфейси та інкапсулювати дані. Хоча навчитися використовувати статично типізовану мову є важливим у довгостроковій перспективі, це не обов’язково найкраща тема для вивчення в першому курсі програмування студентів.

Багато інших аспектів Python роблять його хорошою першою мовою. Подібно до Java, Python має велику стандартну бібліотеку, тому студентам можна призначати проекти програмування на початку курсу, які роблять щось. Завдання не обмежуються стандартним чотирифункціональним калькулятором і програмами перевірки балансу. Використовуючи стандартну бібліотеку, студенти можуть отримати задоволення від роботи над реалістичними програмами, вивчаючи основи програмування. Використання стандартної бібліотеки також навчає студентів повторному використанню коду. Сторонні модулі, такі як PyGame, також допомагають розширити охоплення студентів.

Інтерактивний інтерпретатор Python дозволяє студентам тестувати функції мови під час програмування. Вони можуть тримати вікно з запущеним інтерпретатором, поки вони вводять код своєї програми в інше вікно. Якщо вони не можуть згадати методи для списку, вони можуть зробити щось подібне:

>>> L = [] >>> dir(L) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] >>> [d for d in dir(L) if '__' not in d] ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] >>> help(L.append) Help on built-in function append: append(. ) L.append(object) -> None -- append object to end >>> L.append(1) >>> L [1] 

З інтерпретатором документація завжди є доступною для студента, оскільки він програмує.

There are also good IDEs for Python. IDLE is a cross-platform IDE for Python that is written in Python using Tkinter. Emacs users will be happy to know that there is a very good Python mode for Emacs. All of these programming environments provide syntax highlighting, auto-indenting, and access to the interactive interpreter while coding. Consult the Python wiki for a full list of Python editing environments.

Якщо ви хочете обговорити використання Python в освіті, вам може бути цікаво приєднатися до списку розсилки edu-sig.

Встановлення модулів Python¶

Як популярний проект розробки з відкритим кодом, Python має активну спільноту учасників і користувачів, які також надають своє програмне забезпечення іншим розробникам Python для використання на умовах ліцензії з відкритим кодом.

Це дозволяє користувачам Python ефективно ділитися та співпрацювати, отримуючи вигоду від рішень, які інші вже створили для поширених (а іноді навіть рідкісних!) проблем, а також потенційно вносячи власні рішення в загальний пул.

This guide covers the installation part of the process. For a guide to creating and sharing your own Python projects, refer to the Python packaging user guide.

Для корпоративних та інших інституційних користувачів пам’ятайте, що багато організацій мають власні політики щодо використання програмного забезпечення з відкритим вихідним кодом і надання допомоги в ньому. Будь ласка, візьміть до уваги ці правила під час використання інструментів розповсюдження та встановлення, які надаються разом з Python.

Ключові терміни¶

  • pip є кращою програмою встановлення. Починаючи з Python 3.4, він включено за замовчуванням у бінарні інсталятори Python.
  • Віртуальне середовище — це напівізольоване середовище Python, яке дозволяє встановлювати пакети для використання певною програмою, а не встановлювати в системі.
  • venv є стандартним інструментом для створення віртуальних середовищ і є частиною Python з Python 3.3. Починаючи з Python 3.4, за замовчуванням pip встановлюється в усі створені віртуальні середовища.
  • virtualenv є сторонньою альтернативою (і попередником) venv . Він дозволяє використовувати віртуальні середовища у версіях Python до 3.4, які або взагалі не забезпечують venv , або не можуть автоматично встановлювати pip у створені середовища.
  • Python Package Index є загальнодоступним сховищем ліцензованих пакетів з відкритим вихідним кодом, доступним для використання іншими користувачами Python.
  • the Python Packaging Authority is the group of developers and documentation authors responsible for the maintenance and evolution of the standard packaging tools and the associated metadata and file format standards. They maintain a variety of tools, documentation, and issue trackers on GitHub.
  • distutils — це оригінальна система збірки та розповсюдження, яка вперше була додана до стандартної бібліотеки Python у 1998 році. Хоча пряме використання distutils поступово припиняється, воно все одно заклало основу для поточної інфраструктури пакування та розповсюдження, а також він не тільки залишається частиною стандартної бібліотеки, але й продовжує жити іншим чином (наприклад, назва списку розсилки, який використовується для координації розробки стандартів пакування Python).

Змінено в версії 3.5: Тепер для створення віртуальних середовищ рекомендується використовувати venv .

Базове використання¶

Усі стандартні інструменти пакування призначені для використання з командного рядка.

Наступна команда встановить останню версію модуля та його залежності з індексу пакетів Python:

python -m pip install SomePackage

Для користувачів POSIX (включаючи користувачів macOS і Linux) приклади в цьому посібнику передбачають використання virtual environment .

Для користувачів Windows приклади в цьому посібнику припускають, що під час інсталяції Python було вибрано параметр налаштування системної змінної середовища PATH.

Також можна вказати точну або мінімальну версію безпосередньо в командному рядку. У разі використання таких операторів порівняння, як > , < або будь-який інший спеціальний символ, який інтерпретується командною оболонкою, назву пакета та версію слід брати в подвійні лапки:

python -m pip install SomePackage==1.0.4 # specific version python -m pip install "SomePackage>=1.0.4" # minimum version

Зазвичай, якщо відповідний модуль уже встановлено, повторна спроба встановити його не матиме ефекту. Оновлення існуючих модулів має надаватися в явному вигляді:

python -m pip install --upgrade SomePackage

Більше інформації та ресурсів щодо pip і його можливостей можна знайти в Посібнику користувача з пакування Python.

Створення віртуальних середовищ здійснюється за допомогою модуля venv . Для встановлення пакетів у активне віртуальне середовище використовуються команди, наведені вище.

Як мені …?¶

Це короткі відповіді або посилання для деяких типових завдань.

… встановити pip у версіях Python до Python 3.4?¶

Python почав об’єднувати pip лише з Python 3.4. Для попередніх версій pip потрібно «завантажити», як описано в посібнику користувача з пакування Python.

… встановити пакети лише для поточного користувача?¶

Передача параметра –user до python -m pip install встановить пакет лише для поточного користувача, а не для всіх користувачів системи.

… встановити наукові пакети Python?¶

Кілька наукових пакетів Python мають складні бінарні залежності, і наразі їх непросто встановити безпосередньо за допомогою pip . На даний момент користувачам буде простіше встановити ці пакунки іншими засобами, ніж намагатися встановити їх за допомогою pip .

… працювати з кількома версіями Python, встановленими паралельно?¶

У Linux, macOS та інших системах POSIX використовуйте версії команд Python у поєднанні з перемикачем -m , щоб запустити відповідну копію pip :

python2 -m pip install SomePackage # default Python 2 python2.7 -m pip install SomePackage # specifically Python 2.7 python3 -m pip install SomePackage # default Python 3 python3.4 -m pip install SomePackage # specifically Python 3.4

Також можуть бути доступні команди pip з відповідними версіями.

У Windows використовуйте засіб запуску Python py у поєднанні з перемикачем -m :

py -2 -m pip install SomePackage # default Python 2 py -2.7 -m pip install SomePackage # specifically Python 2.7 py -3 -m pip install SomePackage # default Python 3 py -3.4 -m pip install SomePackage # specifically Python 3.4

Поширені проблеми встановлення¶

Встановлення в систему Python на Linux¶

У системах Linux інсталяція Python зазвичай буде включена як частина дистрибутива. Встановлення в цю установку Python вимагає кореневого доступу до системи та може заважати роботі системного менеджера пакунків та інших компонентів системи, якщо компонент неочікувано оновлено за допомогою pip .

У таких системах часто краще використовувати віртуальне середовище або інсталяцію для кожного користувача під час інсталяції пакетів за допомогою pip .

Pip не встановлено¶

Можливо, pip не встановлюється за замовчуванням. Одним з потенційних виправлень є:

python -m ensurepip --default-pip

There are also additional resources for installing pip.

Встановлення бінарних розширень¶

Python, як правило, значною мірою покладається на дистрибутив на основі вихідного коду, причому очікується, що кінцеві користувачі збиратимуть модулі розширення з вихідного коду як частину процесу встановлення.

Із запровадженням підтримки двійкового формату wheel і можливістю публікувати колеса принаймні для Windows і macOS через індекс пакетів Python, очікується, що ця проблема з часом зменшиться, оскільки користувачі зможуть більш регулярно встановлювати готові розширення, а не створювати їх самостійно.

Деякі з рішень для встановлення наукового програмного забезпечення, які ще не доступні у вигляді попередньо зібраних файлів wheel , також можуть допомогти отримати інші двійкові розширення без необхідності створювати їх локально.

Related Post

Біла гнилизна часнику заходиБіла гнилизна часнику заходи

Зміст:1 Як знезаразити ґрунт під озимий часник: всього одна копійчана підгодівля1.1 Чим і коли обробити ґрунт під часник2 Хвороби часнику і заходи профілактики2.1 Хвороби часнику2.1.1 Бактеріоз або бактеріальна гнилизна2.1.2 Склеротиніоз

Хто має право бути виробником робіт у електроустановкахХто має право бути виробником робіт у електроустановках

Організація робіт в діючих електроустановках за розпорядженням Відповідно до пункту 3.1.1. НПАОП 40.1-1.21-98 «Правила безпечної експлуатації електроустановок споживачів» роботи в електроустановках стосовно їх організації поділяються на такі, що виконуються: за