как узнать расположение python linux
Как проверить установлен ли Python?
Не редкий случай, когда начинающие программисты определились с выбором языка программирования и решили написать свою первую программу, чаще всего — hello world. Но где найти и как открыть python?
Подход для каждой операционной системы различается, приведу примеры для Windows и Linux.
Как найти python в Microsoft Windows?
Большинство программ в этой операционной системе устанавливаются в папку Program Files расположенную на вашем системном диске. Но искать среди кучи установленных программ не самый простой вариант. Можно открыть меню Пуск и воспользоваться поисковой строкой для обнаружения установленной версии Python.
В Windows 10 по умолчанию поисковая строка — отсутствует, но до тех пор, пока вы не начнете вводить текст. Введите — python и если в вашей системе он установлен windows найдет это приложение.
На моей тестовой системе установленные 2 версии python.
Как найти python в Unix подобных ОС (Linux и MacOS)
В большинстве дистрибутивов Unix python установлен по умолчанию. Более того, он поставляется в двух версия, python2.7 и python3.
Чтобы найти исполняемый файл python — запустите эмулятор терминала и введите в него команду which python
Результатом выполнения команды будет путь до исполняемого файла. Но как узнать какой версии python? Для этого необходимо выполнить еще одну команду в терминале — /usr/bin/python —version
Как видим, данный исполняемый файл версии 2.7.16.
Но наверняка вам нужна более актуальная и поддерживаемая версия Python 3. Её тоже не составит труда найти и достаточно выполнить команду which python3
Как видим — результат выполнения команды путь до исполняемого файла ( пути до исполняемых файлов могут отличаться из за разных структур файловой системы операционных систем).
Осталось проверить версию интерпретатора python3.
У нас установлена версия Python 3.8.0.
Так же большинство дистрибутивов создают символические ссылки на исполняемые файлы, для их быстрого запуска без указания полного пути к исполняемому файлу. Например запустить версию python2.7 можно командой python2.7, а версию 3 командой python3
Теперь вы знаете как найти python на вашем компьютере вне зависимости от вашей операционной системы.
Прочитайте другие статьи посвященные языку программирования Python.
Где хранятся модули в Python?
Система модулей даёт возможность логически организовать код на Python. Кроме того, группирование в модули значительно облегчает сам процесс написания кода, плюс делает его более понятным. В этой статье поговорим, что такое модуль в Python, где он хранится и как обрабатывается.
Модуль в Python — это файл, в котором содержится код на Python. Любой модуль в Python может включать в себя переменные, объявления функций и классов. Вдобавок ко всемe, в модуле может содержаться исполняемый код.
Команда import в Python
Позволяет использовать любой файл Python в качестве модуля в другом файле. Синтаксис прост:
Как только Python-интерпретатор встречает команду import, он выполняет импорт модуля, если он есть в пути поиска Python. Что касается пути поиска Python, то речь идёт о списке директорий, в которых интерпретатор выполняет поиск перед загрузкой модуля. Посмотрите на пример кода при использовании модуля math:
Помните, что модуль загружается только один раз, вне зависимости от того, какое количество раз вы его импортировали. Таким образом исключается цикличное выполнение содержимого модуля.
Использовать данную конструкцию нужно осторожно, ведь при импорте нескольких модулей можно запутаться в собственном коде.
Так где хранятся модули в Python?
При импорте модуля, интерпретатор Python пытается найти модуль в следующих местах: 1. Директория, где находится файл, в котором вызывается команда импорта. 2. Директория, определённая в консольной переменной PYTHONPATH (если модуль не найден с первого раза). 3. Путь, заданный по умолчанию (если модуль не найден в предыдущих двух случаях).
Что касается пути поиска, то он сохраняется в переменной path в системном модуле sys. А переменная sys.path включает в себя все 3 вышеописанных места поиска.
Получаем список всех модулей Python
Создаём свой модуль в Python
А во втором вызовем функцию:
После выполнения кода 2-го файла получим:
Функция dir() в Python
Возвратит отсортированный список строк с содержанием всех имён, определенных в модуле.
Пакеты модулей в Python
Несколько файлов-модулей с кодом можно объединить в пакеты модулей. Пакет модулей — это директория, включающая в себя несколько отдельных файлов-скриптов.
Представьте, что у нас следующая структура:
В файле inside_file.py определена некоторая функция foo. В итоге, дабы получить доступ к этой функции, в файле my_file нужно выполнить:
Также нужно обратить внимание на то, есть ли внутри директории my_package файл init.py. Это может быть и пустой файл, сообщающий Python, что директория является пакетом модулей. В Python 3 включать файл init.py в пакет модулей уже не обязательно, но мы рекомендуем всё же делать это, чтобы обеспечить обратную совместимость.
Где хранятся модули Python?
Я недавно начал изучать Python, и у меня есть 2 вопроса, касающихся модулей.
7 ответов
1) Есть ли способ получить список доступных модулей Python (т.е. установленных) на mchine?
Это работает для меня:
2) Где на самом деле хранится код модуля на моей машине?
Обычно в /lib/site-packages в вашей папке Python. (По крайней мере, на Windows.)
Если вы используете conda или pip для установки модулей, вы можете использовать
Отобразить все модули. Это отобразит все модули в самом терминале и будет намного быстрее, чем
Вы можете найти код модуля, сначала перечислив модули:
Это выдает список модулей, которые Python может импортировать. Внизу этого списка есть фраза:
Введите любое имя модуля, чтобы получить дополнительную помощь. Или введите «модули спам» для поиска модулей, чье имя или сводка содержат строку «спам».
Чтобы найти местоположение модуля:
Здесь много информации. Прокрутите вниз, чтобы найти его местоположение
Копировать ссылку. Чтобы увидеть код после выхода из Python REPL:
В командной строке python сначала импортируйте тот модуль, для которого вам нужно местоположение.
Например, чтобы узнать местоположение «pygal»:
На машине Windows модули Python расположены по адресу (системный диск и версия Python могут отличаться):
1) Использование функции справки
Войдите в приглашение Python и введите следующую команду:
Это перечислит все модули, установленные в системе. Вам не нужно устанавливать никаких дополнительных пакетов для их перечисления, но вам нужно вручную искать или фильтровать нужный модуль из списка.
2) Использование заморозки в пипсах
Вы можете использовать любой удобный для вас метод.
Как получить путь к текущему исполняемому файлу в Python?
это может показаться вопрос новичка, но это не так. Некоторые общие подходы не работают во всех случаях:
sys.argv[0]
__файл__
вопросы, связанные с неполными ответами:
Я ищу универсального решения, тот, который будет работать во всех приведенных выше случаях использования.
обновление
вот результат теста:
вывод python a.py (on Windows)
subdir/b.py
дерево
10 ответов
вы не можете самостоятельно определить расположение основных скрипта. В конце концов, иногда сценарий вообще не из файла. Например, он может исходить из интерактивного интерпретатора или динамически генерируемого кода, хранящегося только в памяти.
однако вы можете надежно определить местоположение модуля, так как модули всегда загружаются из файла. Если вы создадите модуль со следующим кодом и поместите его в тот же каталог, что и основной скрипт, то основной скрипт может импортировать модуль и использовать его для поиска самого себя.
Если у вас есть несколько основных сценариев в разных каталогах, вам может понадобиться более одной копии module_locator.
конечно, если ваш основной скрипт загружен каким-то другим инструментом, который не позволяет вам импортировать модули, которые расположены вместе с вашим скриптом, тогда вам не повезло. В таких случаях информация, которую вы ищете, просто не существует нигде в вашей программе. Лучше всего было бы подать ошибку с авторами инструмента.
во-первых, вам нужно импортировать из inspect и os
далее, везде, где вы хотите найти исходный файл, вы просто используете
я столкнулся с подобной проблемой, и я думаю, что это может решить проблему:
он работает для обычных скриптов и в режиме ожидания. Все, что я могу сказать, это попробовать это для других!
Мое типичное использование:
теперь я использую _ _ modpath _ _ вместо _ _ file__.
короткий ответ:нет гарантированного способа получить нужную вам информацию, однако есть эвристика, которая работает почти всегда на практике. Вы можете посмотреть на как найти местоположение исполняемого файла в C?. Он обсуждает проблему с точки зрения C, но предлагаемые решения легко транскрибируются в Python.
это решение является надежным даже в исполняемых файлах
см. мой ответ на вопрос импорт модулей из родительской папки для соответствующей информации, в том числе почему мой ответ не использует ненадежный __file__ переменной. Это простое решение должно быть кросс-совместимо с различными операционными системами в качестве модулей os и inspect приходите как часть Python.
во-первых, вам нужно импортировать части проверить и os модули.
далее использовать следующая строка в любом другом месте нужна в вашем коде Python:
как работает:
из встроенного модуля os (описание ниже) импортируется.
OS подпрограммы для Mac, NT, или Posix в зависимости от того, какая система мы находимся на.
получить полезную информацию из live Python объекты.
‘ в оболочке Python или возвращает путь к файлу кода Python, выполняемого в настоящее время.
используя abspath в результате getsourcefile(lambda:0) должен убедиться,что созданный путь к файлу является полным путем к файлу Python.
Это объясняло решение изначально было основано на коде из ответа на как получить путь к текущему исполняемому файлу в Python?.
это должно сделать трюк кросс-платформенным способом (пока вы не используете интерпретатор или что-то еще):
у меня нет Mac; поэтому я не тестировал это на одном. Пожалуйста, дайте мне знать, если это сработает, как кажется, это должно быть. Я тестировал это в Linux (Xubuntu) с Python 3.4. Обратите внимание, что многие решения этой проблемы не работают на Маках (так как я слышал, что __file__ нет на Macs).
обратите внимание, что если ваш скрипт является символической ссылкой, он даст вам путь к файлу, на который он ссылается (а не путь символической ссылки).
Как установить Python и pip на Ubuntu
Пайтон — популярный язык программирования, который в большинстве дистрибутивов Linux установлен по умолчанию. У него есть несколько версий, которые имеют сильные различия между собой. Так что я расскажу, как установить различные версии Python и пакетного менеджера pip к нему в Ubuntu.
Проверка версии Python
По умолчанию минимальная установка Ubuntu уже включает в себя пакет Python. Посмотреть его версию можно с помощью пакетного менеджера.
Так же, если пакет установлен, то узнать версию Python можно через него самого.
В данном случае в ubuntu установлена версия 3.8.5. Обычно 3-я версия пайтона в системе именуется python3, а вторая просто python.
Кстати, а вы знаете, чем Ubuntu Server принципиально отличается от других Linux систем? Читайте мой обзор и сравнение — обзор ubuntu server и сравнение.
Установка Python
Может так быть, что в системе вообще не установлен python. Например, у каких-то провайдеров в их собственных кастомных образах. Они могут вырезать из них вообще все, что по их мнению там лишнее, чтобы уменьшить размер дистрибутива. В таком случае, установить python в ubuntu вам придется самостоятельно.
Рассмотрим сначала момент с установкой самой последней версии python. Сделать это проще всего с помощью пакетного менеджера apt:
Так вы установите самую свежую версию 3-го пайтона, которая присутствует в репозиториях дистрибутива. Чаще всего там будет достаточно свежая версия, так как данный язык программирования и среда исполнения очень распространены.
Установка из исходников
Если вам нужно что-то совсем свежее, то можно скомпилировать и установить python из исходников. Для этого идем на сайт python.org и переходим в раздел Downloads. Находим там самую свежую версию, скачиваем исходники и распаковываем.
Для установки python из исходников, нам понадобятся дополнительные системные пакеты. Устанавливаем их:
Теперь можно приступить к сборке:
Проверяем установленную из исходников версию:
Если у вас уже присутствуют другие версии пайтона в системе, то читайте ниже, как среди них выбрать ту, что будет использоваться по умолчанию.
Установка pip в Ubuntu
Вместе с python обычно используется пакетный менеджер для него. Давайте рассмотрим, как выглядит установка pip в Ubuntu. В зависимости от версии пайтона, устанавливается подходящая версия pip. Тут так же как и с самим интерпретатором версия пакета будет зависеть от версии самого языка. Если он 2-й версии, то ставится просто pip, если 3-й, то pip3.
Проверяем установленную версию pip:
Установленная версия pip соответствует присутствующей в системе версии python 3.8.
Установка пакетов python
Итак, pip мы установили, давайте теперь посмотрим, как с помощью этого пакетного менеджера устанавливать пакеты python. Никаких отличий от других пакетных менеджеров тут нет. Вот пример того, как устанавливается пакет pymysql для работы с базами данных mysql с помощью пайтона.
Посмотреть список установленных пакетов можно следующим образом:
А вот так вы можете узнать, какие файлы были установлены в систему, принадлежащие указанному пакету.
Удалить пакет с помощью pip можно следующим образом:
Вкратце по работе с pip все. Ничего сложного, все как обычно.
Обновить Python
Рассмотрим теперь тему с обновлением python в ubuntu. Тут может быть несколько вариантов.
Первый и третий варианты мы уже рассмотрели ранее. Обновление python до последней версии ничем не будет отличаться от чистой установки. В случае с пакетным менеджером apt, вам просто вместо install нужно будет указать upgrade.
Если в подключенных репозиториях ubuntu будет свежая версия python, то будет обновление до нее. Если нет, то ничего не произойдет. Останется текущая версия.
Обычное самые свежие версии python есть в отдельном репозитории deadsnakes. Подключим его:
А теперь попробуем поставить самую последнюю версию python из этого репозитория.
В итоге мы обновились до самой свежей версии python 3.9.1. При этом нам не пришлось ее собирать из исходников. Мы воспользовались установкой через пакетный менеджер, а значит нам будет проще обновляться в дальнейшем и поддерживать актуальную версию. Обновления будут приходить автоматически через apt.
Выбор по умолчанию
В описанных выше разделах мы установили как минимум 2 разные версии python3 — 3.8.5 и 3.9.1. Давайте теперь разберемся, какая их них будет выбираться по умолчанию.
В ubuntu указать дефолтную версию python, которая будет выбираться по умолчанию, можно с помощью команды update-alternatives. Вот как это выглядит:
Проверяем теперь дефолтную версию:
Так мы установили в системе по умолчанию версию python 3.8.5. А теперь изменим это на более свежую версию 3.9.1
В предложенном списке выбираем нужную нам версию пайтона, которая будет использоваться по умолчанию в нашей системе ubuntu.
Как запускать Python скрипты
С установкой и обновлением пайтона разобрались. Давайте теперь посмотрим, как нам запускать скрипты в системе. Ничего особенного для этого делать не надо. Достаточно указать бинарник интерпретатора и сам скрипт. Примерно так выглядит запуск python скрипта в ubuntu:
Скрипт будет запущен дефолтной версией пайтона. Если нужно запустить в какой-то конкретной версии, то делается это так:
Так же скрипты пайтона можно запускать напрямую в консоли. Для этого в самом начале скрипта нужно объявить окружение.
После этого достаточно сделать файл исполняемым и запустить прямо в консоли.
Если вы хотите запускать скрипт как службу, то вам придется добавить юнит в systemd. Делается это следующим образом. Создаем файл /lib/systemd/system/python.service :
После этого перечитываем конфигурацию systemd и запускаем скрипт на пайтоне как службу:
Так как мой скрипт не предполагает работу в режиме службы, то после выполнения он был завершен. Если же у вас там запрограммирована непрерывная работа, то он будет работать как служба через systemd.
Как удалить Python в Ubuntu
Если вам по какой-то причине необходимо удалить python с сервера ubuntu, то сделать это можно штатным образом через пакетный менеджер apt. Для того, чтобы узнать версию пакетов для удаления, можно вывести их список.
После этого, подставляя версию нужного пакета, удалить его:
Только будьте внимательны при удалении python из системы. Он очень много кем используется. При его удалении будет предложено удалить и все его зависимости. А это внушительный список пакетов, которые без пайтона не смогут работать.
К примеру, без пайтона не сможет работать netplan, с помощью которого настраивается сеть. Так что аккуратнее с удалением питона из системы.
Запуск Python в Docker
Ну и в завершении статьи про Python в Ubuntu, покажу, как можно еще его запускать без локальной установки непосредственно в саму систему. Вы можете запустить питона в докере. Для этого просто выберите необходимую вам версию Python и запустите Docker контейнер с ней.
В данном случае я быстро запустил свой скрипт в версии 3, используя контейнер python:3. Если мне то же самое нужно сделать во 2-й версии, то я просто использую другой контейнер.
Таким образом я могу запускать свой скрипт на любой версии python без необходимости его локальной установки. В приведенном примере контейнер будет автоматически остановлен и удален после выполнения скрипта. За это отвечает параметр —rm, который я указал.