- Рекомендуемый способ установки пакетов Python на Arch
- Python
- Contents
- Installation
- Python 3
- Python 2
- Alternative implementations
- Alternative shells
- Old versions
- Package management
- Widget bindings
- Tips and tricks
- Virtual environment
- Tab completion in Python shell
- Python (Русский)
- Contents
- Установка
- Python 3
- Python 2
- Альтернативные реализации
- Альтернативные оболочки
- Старые версии
- Управление пакетами
- Привязки к графическим библиотекам
- Советы и рекомендации
- Виртуальное окружение
- Автодополнение в оболочке Python
Рекомендуемый способ установки пакетов Python на Arch
Каков рекомендуемый способ установки пакетов Python на Arch? Поиск их в AUR и их установка оттуда (или создание PKGBUILD файла для создания пакета самостоятельно) или использование pip ?
Я начал с установки вещей из pacman и AUR и не знаю, будет ли разумно смешивать их с pip пакетами.
Если вам не нужны пакеты python для всех пользователей, вы можете установить их дома:
Установка в вашем доме не будет конфликтовать с менеджером пакетов.
По умолчанию pip install —user будет установлен в вашем каталоге пользователя сайта. Обычно это что — то вроде: /home/lesmana/.local/lib/python3.6/site-packages .
Следующая команда напечатает, среди прочего, ваше местоположение «пользовательский сайт»:
Чтобы настроить место установки:
это установит все под $HOME/some/dir
См. Руководство по пунктам для получения дополнительной информации.
если вам нужен пакет python для всех пользователей, тогда лучше всего его установить /opt . например вот так:
(обратите внимание на отсутствие —user )
и запустить, как указано выше:
Фоновое объяснение: /opt дистрибутивы gnu / linux обычно признаются каталогом, в который локальный пользователь или системный администратор может установить свои собственные компоненты. другими словами: менеджер пакетов дистрибутивов обычно не трогает /opt . это более или менее стандартизировано в стандарте иерархии файловой системы
Для удобства пользователей вы все равно захотите написать скрипт-обертку и поместить его в /bin или /usr/bin . Это все еще несет риск столкновения с менеджером дистрибутива, но по крайней мере это всего лишь один файл сценария оболочки. Таким образом, ущерб, который может быть нанесен, минимален. Вы можете назвать скрипт-обертку как-то так local-foo или иначе, custom-foo чтобы минимизировать риск столкновения с менеджером дистрибутива.
В качестве альтернативы вы можете изменить, PATH чтобы включить /opt/bin и разместить свой скрипт оболочки там. Но это опять-таки требует от вас изменения (или некоторых) системных файлов, в которых они PATH определены, которые снова могут быть перезаписаны менеджером пакетов распространения.
Короче говоря: если вы хотите установить для всех пользователей, сделайте это в /opt . То, где вы размещаете скрипт-обертку для комфорта, — это суждение.
Дополнительная информация о /opt стандарте и иерархии файловых систем:
Источник
Python
Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. It supports multiple programming paradigms beyond object-oriented programming, such as procedural and functional programming. Python combines remarkable power with very clear syntax. It has interfaces to many system calls and libraries, as well as to various window systems, and is extensible in C or C++. It is also usable as an extension language for applications that need a programmable interface. Finally, Python is portable: it runs on many Unix variants including Linux and macOS, and on Windows.
Contents
Installation
Python 3
Python 3 is the latest and actively developed version of the language. See What’s New in Python to see the latest changes in Python 3.
To install the current release of Python 3, install the python package.
If you would like to build the latest RC/betas from source, visit Python Downloads. The Arch User Repository also contains good PKGBUILDs. If you do decide to build the RC, note that the binary (by default) installs to /usr/local/bin/python3.x . As an alternative which does not require superuser capabilities and installs to the home directory, consider using pyenv .
Python 2
Python 2 is an older version of the language. Python 3 and Python 2 are incompatible. For an overview of the differences, see the historical version of the Python2orPython3 document.
Although Python 2 is no longer actively maintained, there are some packages that still depend on it. Python 2 may also be useful for developers maintaining, using or porting legacy Python 2 software.
To get the latest version of Python 2, install the python2 package.
Python 2 will happily run alongside Python 3. You need to specify python2 in order to run this version.
Any program requiring Python 2 needs to use /usr/bin/python2 , instead of /usr/bin/python , which points to Python 3. However, many legacy Python 2 scripts incorrectly specify python in their shebang line. To change this, open the program or script in a text editor and change the first line. The line may show one of the following:
In either case, change python to python2 and the program will then use Python 2 instead of Python 3.
Another way to force the use of python2 without altering the scripts is to call it explicitly with python2 :
Finally, you may not be able to control the script calls, but there is a way to trick the environment. It only works if the scripts use #!/usr/bin/env python . It will not work with #!/usr/bin/python . This trick relies on env searching for the first corresponding entry in the PATH variable.
First create a dummy folder:
Then add a symlink python to python2 and the config scripts in it:
Finally put the new folder at the beginning of your PATH variable:
To check which python interpreter is being used by env , use the following command:
A similar approach in tricking the environment, which also relies on #!/usr/bin/env python to be called by the script in question, is to use a virtual environment.
Alternative implementations
The python package installs CPython, the reference implementation of Python. However, there are also other implementations available. These implementations are usually based on older versions of Python and are not fully compatible with CPython.
Implementations available on Arch Linux include:
- PyPy — A Python implementation written in Python. It has speed and memory usage advantages compared to Cython.
https://www.pypy.org || pypy , pypy3
- Jython — An implementation of the Python language written in Java. It can be used to embed Python scripting into Java programs or use Java libraries in Python programs.
https://www.jython.org/ || jython
- micropython — Python for microcontrollers. It includes a small subset of the Python standard library and is optimized to run on microcontrollers and in constrained environments.
https://micropython.org/ || micropythonAUR
- IronPython — An implementation of the Python programming language which is tightly integrated with .NET. It can use .NET libraries and allows .NET programs to use Python libraries.
https://ironpython.net || ironpython-gitAUR
More implementations exist. Some, such as Stackless, Pyston and Cinder are used internally at large technology companies. Others are historically notable but are no longer maintained due to improvements in the most popular implementations.
Alternative shells
The python package includes an interactive Python shell/REPL which can be launched with the python command. The following shells are also available:
Old versions
Old versions of Python are available via the AUR and may be useful for historical curiosity, old applications that do not run on current versions, or for testing Python programs intended to run on a distribution that comes with an older version:
Extra modules/libraries for old versions of Python may be found on the AUR by searching for python , e.g. searching for python26 for 2.6 modules.
Package management
There are several ways to install Python packages on Arch Linux:
- Official repositories and AUR — A large number of popular packages are available in the Arch repositories. This is the preferred way to install system-wide packages.
- pip(1) — The official package installer for Python. You can use pip to install packages from the Python Package Index and other indexes.
https://pip.pypa.io/ || python-pip
- pipx — Closely related to pip, but creates, for the user running it, an isolated environment for each application and its associated packages, preventing conflicts with system packages. Focused on packages that can be run from the command line directly as applications. You can use pipx to install packages from the Python Package Index and other indexes.
https://pypa.github.io/pipx/ || python-pipx
- Anaconda — An open source package management system and environment management system, originally created for Python programs. You can use Conda to install packages from the Anaconda repositories.
https://docs.conda.io/projects/conda/ || anacondaAUR
- Miniconda — A lightweight alternative to Anaconda which installs the package manager but does not install scientific computing packages by default.
https://docs.conda.io/en/latest/miniconda.html || miniconda3AUR
When installing packages using pip, it is recommended to use a virtual environment to prevent conflicts with system packages in /usr . Alternatively, pip install —user can be used to install packages into the user scheme instead of /usr . pipx and Conda integrate environment management into their workflows.
See the Python Packaging User Guide for the official best practices for package management.
Historically, easy_install (part of python-setuptools ) was used to install packages distributed as Eggs. easy_install and Eggs have been replaced with pip and Wheels. See pip vs easy_install and Wheel vs Egg for more information.
Widget bindings
The following widget toolkit bindings are available:
To use these with Python, you may also need to install the associated widget toolkit packages (e.g. tk must also be installed to use Tkinter).
Tips and tricks
Virtual environment
Python provides tools to create isolated virtual environments into which packages may be installed without conflicting with other virtual environments or the system packages. Virtual environments can also run applications with different versions of Python on the same system.
Tab completion in Python shell
Tab completion is available in the interactive shell by default. Note that the readline completer will only complete names in the global namespace. You can use python-jedi for a richer tab completion experience [1].
Источник
Python (Русский)
Python — интерпретируемый, интерактивный, объектно-ориентированный язык программирования. Включает модули, исключения, динамическую типизацию, высокоуровневые типы данных и классы. Поддерживает различные парадигмы программирования помимо ООП, вроде процедурного и функционального программирования. Python соединил в себе впечатляющую мощь и простоту синтаксиса. В нём предусмотрены интерфейсы для многих системных вызовов и библиотек, а также оконных систем; возможно расширение с помощью С и С++. Помимо всего перечисленного, он может использоваться как язык расширений для приложений, которым необходим программный интерфейс. Наконец, Python портируем: он запускается на множестве вариантов Unix, включая Linux и macOS, а также Windows.
Contents
Установка
Python 3
Python 3 — последняя и активно разрабатываемая версия языка. Последние изменения в Python 3 можно увидеть на странице What’s New in Python.
Текущий релиз Python 3 можно установить с пакетом python .
Если вы хотите собрать самую свежую RC/бета-версию из исходников, посетите страницу Python Downloads. В пользовательском репозитории Arch также есть несколько отличных PKGBUILD’ов. Если вы решили собрать RC-версию, обратите внимание, что исполняемый файл устанавливается (по умолчанию) в каталог /usr/local/bin/python3.x . В качестве альтернативы, для которой не требуются права суперпользователя, можно выбрать установку в домашний каталог с помощью pyenv .
Python 2
Python 2 — более старая версия языка. Python 3 и Python 2 несовместимы. Обзор различий можно найти в статье Python2orPython3.
Хотя Python 2 более не поддерживается, некоторые пакеты всё ещё от него зависят. Python 2 может также пригодиться разработчикам, которые поддерживают, используют или портируют старые программы на Python 2.
Последнюю версию Python 2 можно установить с пакетом python2 .
Python 2 будет успешно запускаться и функционировать, даже если в вашей системе также установлен Python 3. Эта версия запускается командой python2 .
Любая программа, которой необходим Python 2, должна вызывать команду /usr/bin/python2 вместо /usr/bin/python , которая указывает на Python 3. Чтобы добиться этого, откройте программу или сценарий в текстовом редакторе и измените первую строку, которая может выглядеть как
В обоих случаях замените python на python2 , и программа будет использовать Python 2.
Другой способ, избавляющий от необходимости редактировать сценарии — явно указывать команду python2 :
Но бывают ситуации, когда у вас нет возможности контролировать поведение сценариев. В этом случае можно попробовать обмануть окружение. Этот трюк работает только если в сценарии указана строка #!/usr/bin/env python : в случае с #!/usr/bin/python ничего не получится. Все это возможно благодаря принципу работы утилиты env , которая ищет первое подходящее совпадение в каталогах, указанных в переменной PATH .
Итак, для начала создайте необходимый каталог:
Затем создайте символическую ссылку python , указывающую на python2, и ещё одну для сценариев настройки:
Наконец, добавьте вновь созданный каталог в начало переменной PATH :
Чтобы узнать, какая версия интерпретатора Python будет использоваться, выполните:
Еще один способ обмана окружения, который также основан на вызове #!/usr/bin/env python — использовать #Виртуальное окружение.
Альтернативные реализации
Пакет python содержит CPython, стандартную реализацию Python, но существуют и другие реализации. Они обычно основаны на более старых версиях Python и лишь частично совместимы с CPython.
Доступные в Arch Linux реализации:
- PyPy — Реализация Python, написанная на Python. Улучшенная производительность и использование памяти по сравнению с Cython.
https://www.pypy.org || pypy , pypy3
- Jython — Реализация языка Python на Java. Используется для встраивания сценариев Python в программы на Java или использования библиотек Java в программах на Python.
https://www.jython.org/ || jython
- micropython — Python для микроконтроллеров. Включает небольшое подмножество стандартной библиотеки Python; оптимизирован под запуск на микроконтроллерах в ограниченном окружении.
https://micropython.org/ || micropythonAUR
- IronPython — Реализация языка программирования Python, которая плотно интегрирована с .NET. Может использовать библиотеки .NET и позволяет .NET-программам использовать библиотеки Python.
https://ironpython.net || ironpython-gitAUR
Существуют и другие реализации. Некоторые из них, вроде Stackless, Pyston и Cinder, используются внутри больших технологических компаний. Другие имели некоторое значение в прошлом, но больше не поддерживаются из-за улучшений более популярных реализаций.
Альтернативные оболочки
Пакет python включает интерактивную оболочку/REPL Python, которая запускается командой python . Доступны также следующие оболочки:
Старые версии
Старые версии Python доступны в AUR и могут быть полезны, если вас одолевает историческое любопытство, если старые приложения не запускаются на более новых версиях или если вам необходимо протестировать программы на возможность работы в дистрибутивах со старыми версиями интерпретатора:
Дополнительные модули/библиотеки для старых версий Python можно найти в AUR по слову python . Например, введите python26 для поиска модулей версии 2.6.
Управление пакетами
Существует целый ряд способов установить пакет Python в Arch Linux:
- Официальные репозитории и AUR — большое количество популярных пакетов доступно в репозиториях Arch. Это предпочтительный вариант установки системных пакетов.
- pip — Официальный установщик пакетов для Python. Используйте pip для установки пакетов из Python Package Index и других индексов.
https://pip.pypa.io/ || python-pip
- Anaconda — Открытая система управления пакетами и окружением, изначально созданная для программ Python. С помощью Conda можно устанавливать пакеты из репозиториев Anaconda.
https://docs.conda.io/projects/conda/ || anacondaAUR
- Miniconda — Легковесная альтернатива для Anaconda, которая по умолчанию устанавливает пакетный менеджер, но не устанавливает пакеты для научных вычислений.
https://docs.conda.io/en/latest/miniconda.html || miniconda3AUR
При установке пакетов из источников, отличных от официальных репозиториев и AUR, рекомендуется использовать виртуальное окружение (или управление окружением Conda), чтобы предотвратить конфликты с системными пакетами в каталоге /usr . В качестве альтернативы можно устанавливать пакеты командой pip install —user , которая устанавливает пакеты для пользователя, а не в системный каталог /usr .
См. Python Packaging User Guide на предмет лучших практик по управлению пакетами.
Исторически easy_install (часть python-setuptools ) использовалась для установки пакетов, распространяемых как Eggs. easy_install и Eggs были заменены на pip и Wheels. Подробнее см. pip vs easy_install и Wheel vs Egg.
Привязки к графическим библиотекам
Для использования этих привязок в Python, скорее всего, потребуется доустановить соответствующие наборы библиотек.
Советы и рекомендации
Виртуальное окружение
Python предоставляет инструменты для создания изолированных виртуальных окружений, в которых можно устанавливать пакеты, не влияя ни на другие виртуальные окружения, ни на системные пакеты Python. Виртуальное окружение позволяет запускать приложения в различных версиях Python на одной и той же системе.
Автодополнение в оболочке Python
Автодополнение по клавише Tab включено в интерактивной оболочке по умолчанию. Учтите, что дополнение readline работает только для строк в глобальном пространстве имён. Пакет python-jedi расширяет возможности автодополнения [1].
Источник