Где расположены стандартные python модули? - PullRequest
1 голос
/ 28 апреля 2020

Где находятся стандартные python модули? Я говорю о случайном, черепаха, и т. Д. c. модули.

Ответы [ 4 ]

0 голосов
/ 28 апреля 2020

Python ищет модули в перечисленных каталогах в sys.path

Так же, как если бы вы определили свой собственный модуль в пути, который не распознается Python, где вы должны добавить его в переменная окружения PYTHONPATH, чтобы включить ее в каталоги, перечисленные в sys.path, а затем импортировать ее

~$ # let's see contents of sys.path
~$ python3
Python 3.8.2 (default, Mar 13 2020, 10:14:16)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/usr/local/lib/python3.8/dist-packages', '/usr/lib/python3/dist-packages']
>>> exit()
~$
~$ # now, let's try to see contents of /usr/lib/python3.8
~$ cd /usr/lib/python3.8
python3.8$
python3.8$ # list and grep the contents of some files
python3.8$ ls | grep random
random.py
python3.8$ cat random.py | grep "class Random"
class Random(_random.Random):
python3.8$ ls | grep collections
collections
_collections_abc.py
python3.8$ ls collections/
abc.py  __init__.py  __pycache__
python3.8$ cat collections/__init__.py | grep "def namedtuple"
def namedtuple(typename, field_names, *, rename=False, defaults=None, module=None):
python3.8$ cat collections/__init__.py | grep "class OrderedDict"
class OrderedDict(dict):
python3.8$ cat collections/__init__.py | grep "class Counter"
class Counter(dict):
0 голосов
/ 28 апреля 2020

Список путей поиска см. В sys.path:

import sys
print(sys.path)

Подробнее см. здесь в документах.

0 голосов
/ 28 апреля 2020

Они расположены в подкаталоге Lib в каталоге установки Main Python. Например,

: если вы установили Python в C:\Program Files\Python37.

Стандарт пакеты будут в C:\Program Files\Python37\Lib.

0 голосов
/ 28 апреля 2020

Убедитесь сами:

>>> import random
>>> random
<module 'random' from '/usr/local/lib/python3.6/random.py'>
>>> 

Реализация по умолчанию __repr__ для модулей выведет их полный путь к системе.

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

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