Где хранятся модули Python? - PullRequest
38 голосов
/ 28 мая 2010

Я недавно начал изучать Python, и у меня есть 2 вопроса, касающихся модулей.

  1. Есть ли способ получить список доступных модулей Python (т.е. установленных) на компьютере?
  2. Я использую Ubuntu Karmic и Synaptic для управления пакетами. Я только что установил модуль Python. Где на самом деле хранится код модуля на моей машине? (есть ли [рекомендуемое] место по умолчанию для хранения модулей)?

Ответы [ 5 ]

57 голосов
/ 28 мая 2010

1) Есть ли способ получить список Доступны модули Python (т.е. установлен) на мчине?

Это работает для меня:

help('modules')

.

2) Где на самом деле код модуля хранится на моей машине?

Обычно в /lib/site-packages в папке Python. (По крайней мере, в Windows.)

Вы можете использовать sys.path, чтобы узнать, в каких каталогах ищутся модули.

25 голосов
/ 12 марта 2017

В командной строке python сначала импортируйте тот модуль, для которого вам нужно местоположение.

import module_name

Затем введите:

print(module_name.__file__)

Например, чтобы узнать местоположение "pygal":

import pygal
print(pygal.__file__)

Выход:

/anaconda3/lib/python3.7/site-packages/pygal/__init__.py
3 голосов
/ 28 мая 2010
  1. Вы можете перебирать каталоги, перечисленные в sys.path, чтобы найти все модули (кроме встроенных).
  2. Вероятно, это будет где-то около /usr/lib/pythonX.X/site-packages (опять же, см. sys.path). И рассмотрите возможность использования собственного управления пакетами Python (через pip или easy_install, плюс yolk), вместо этого пакеты в репозиториях, поддерживаемых дистрибутивами Linux, имеют тенденцию быть устаревшим.
2 голосов
/ 26 марта 2019

Вы можете найти код модуля, сначала перечислив модули:

help("modules")

Это выдает список модулей, которые Python может импортировать. Внизу этого списка есть фраза:

Введите любое имя модуля, чтобы получить дополнительную помощь. Или введите «Спам модулей», чтобы поиск модулей, имя или резюме которых содержат строку «спам».

Чтобы найти расположение модуля:

help("module_Name")

например:

help("signal")

Здесь много информации. Прокрутите вниз, чтобы найти его местоположение

/usr/lib/python3.5/signal.py

Скопировать ссылку. Чтобы увидеть код, после выхода из Python REPL:

nano /usr/lib/python3.5/signal.py
0 голосов
/ 05 февраля 2017

1) Использование функции справки

Войдите в приглашение python и введите следующую команду:

>>>help("modules")

В этом списке будут перечислены все модули, установленные в системе. Вам не нужно устанавливать никаких дополнительных пакетов для их перечисления, но вам нужно вручную искать или фильтровать нужный модуль из списка.

2) Использование заморозки в пунктах

sudo apt-get install python-pip
pip freeze

Даже если вам нужно установить дополнительные пакеты, чтобы использовать это, этот метод позволяет вам легко искать или фильтровать результат с помощью команды grep например pip freeze | grep feed.

Вы можете использовать любой удобный для вас метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...