Де зберігаються модулі python?


80

Нещодавно я почав вивчати Python, і у мене є 2 запитання щодо модулів.

  1. Чи є спосіб отримати список модулів Python, доступних (тобто встановлених) на машині?
  2. Я використовую Ubuntu Karmic та Synaptic для управління пакетами. Я щойно встановив модуль python. Де код модуля насправді зберігається на моїй машині? (чи існує [рекомендоване] місце за замовчуванням, де зберігаються модулі)?

1
Можливий дублікат: stackoverflow.com/questions/739993/…
Xavier Ho

Відповіді:


103
  1. Чи є спосіб отримати список модулів Python, доступних (тобто встановлених) на машині?

Це працює для мене:

help('modules')
  1. Де насправді зберігається код модуля на моїй машині?

Зазвичай у /lib/site-packagesвашій папці Python. (Принаймні, у Windows.)

Ви можете використовувати, sys.pathщоб дізнатись, у яких каталогах здійснюється пошук модулів.


38
Якщо ви хочете розташування конкретного модуля, importйого і подивіться на його __file__атрибут. Працює для більшості з них.
Ноуфал Ібрагім

2
@NoufalIbrahim, ваша відповідь коштує, як і сама відповідь. TY. Ви можете додати його, щоб зробити його жирним для користувачів.
BehradKhodayar

61

У командному рядку python спочатку імпортуйте той модуль, для якого вам потрібно розташування.

import module_name

Потім введіть:

print(module_name.__file__)

Наприклад, щоб дізнатись про місцезнаходження "pygal":

import pygal
print(pygal.__file__)

Вихід:

/anaconda3/lib/python3.7/site-packages/pygal/__init__.py

Коли я спробував це, я отримав таку помилку:, Unable to initialize device PRNбудь-яка ідея чому? Дякую.
Azurespot

7

Ви можете знайти код модуля, спершу перерахувавши модулі:

help("modules")

Тут викладений список модулів, які може імпортувати Python. Внизу цього списку є фраза:

Введіть будь-яку назву модуля, щоб отримати додаткову допомогу. Або введіть "спам модулів", щоб шукати модулі, ім'я чи зведення яких містять рядок "спам".

Щоб знайти розташування модуля:

help("module_Name")

наприклад:

help("signal")

Тут багато інформації. Прокрутіть униз, щоб знайти його розташування

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

Копіювати посилання. Щоб побачити код, після виходу з Python REPL:

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

6

На машині Windows модулі python розташовані за адресою (системний диск та версія python можуть відрізнятися):

C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Lib

Думаю, найкращу практику використовувати %appdata%у вікні адреси Провідника, щоб швидко дістатися до Roamingпапки та перейти туди-сюди до Localпапки.
questionto42

3
  1. Ви можете переглядати перелічені каталоги, sys.pathщоб знайти всі модулі (крім вбудованих).
  2. Ймовірно, це буде десь навколо /usr/lib/pythonX.X/site-packages(ще раз, див. sys.path) І подумайте про використання власного управління пакетами Python (через pipабо easy_installплюс yolk), оскільки пакети у сховищах, що підтримуються дистрибутивами Linux, як правило, застарілі.

1

Якщо ви використовуєте condaабо pipвстановлюєте модулі, які ви можете використовувати

pip list

або

conda list

для відображення всіх модулів. Це відобразить всі модулі в самому терміналі і набагато швидше, ніж

>>> help('modules')


0

1) Використання довідкової функції

Зайдіть у підказку python і введіть таку команду:

>>>help("modules")

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

2) За допомогою заморожування піп

sudo apt-get install python-pip
pip freeze

Незважаючи на те, що вам потрібно встановити додаткові пакети, щоб використовувати це, цей метод дозволяє легко шукати або фільтрувати результат за допомогою grepкоманди. напр pip freeze | grep feed.

Ви можете скористатися будь-яким зручним для вас способом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.