Python running module name

Поиск и выполнение модулей в Python с помощью функций runpy

В этой статье мы обсудим, как пользователи могут найти модули в Python и какие функции Python используются для выполнения модулей.

Расположение модулей в Python

Когда модули импортируются пользователями, интерпретатор Python будет искать модуль в текущем каталоге. Если модуль не найден в каталоге, интерпретатор будет искать каждый каталог, присутствующий в переменной оболочки, известной как PYTHONPATH. Если интерпретатору не удается найти его в оболочке, он проверяет путь по умолчанию. В UNIX путь по умолчанию: / usr / local / lib / python /.

Путь поиска модуля хранится в системном модуле sys как переменная sys.path. Эта переменная содержит текущий каталог, то есть PYTHONPATH, и значение по умолчанию, зависящее от установки.

Переменная PYTHONPATH

PYTHONPATH — это переменная на основе платформы, которая состоит из списка каталогов. Ее синтаксис такой же, как PATH переменной оболочки.

PYTHONPATH в системе Windows:

set PYTHONPATH = c: \\python3\\lib;

PYPTHONPATH в системе UNIX:

set PYTHONPATH = /usr/local/lib/python

Выполнение модулей в Python

В параметрах командной строки параметр -m используется для определения пути к данному модулю и выполняет модуль как модуль __main__ программы. Модуль runpy — это стандартный модуль Python, который используется для внутренней поддержки этого механизма. Модуль runpy позволяет размещать сценарий, используя пространство имен модуля Python вместо файловой системы.

Модуль runpy определяет две функции:

run_module()

Функция run_module() используется для выполнения кода, содержащего конкретный модуль, и возвращает результат словаря глобальных переменных модуля.

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

Читайте также:  Тег META, атрибут http-equiv

Специальные глобальные переменные, то есть __name__, __spec__, __file__, __cached__, __loader__ и __package__, устанавливаются в глобальном словаре перед выполнением модуля.

__name__ устанавливается в module_name + ‘.__ main__’, если названный модуль является пакетом; в противном случае он будет установлен в аргумент имя_модуля.

И __file__, __cached__, __loader__ и __package__ устанавливаются как обычно в соответствии со спецификацией модуля.

run_path()

Функция run_path() используется для выполнения программы в файле по заданному пути, и в результате она вернет словарь глобальных переменных модуля. Указанный путь может относиться к исходному файлу Python, скомпилированному файлу байт-кода или допустимой записи sys.path, содержащей модуль __main__, например zip-файлу, включающему файл __main__.py верхнего уровня.

Специальные глобальные переменные, то есть __name__, __spec__, __file__, __cached__, __loader__ и __package__, устанавливаются в глобальном словаре перед выполнением модуля.

__name__ переменной присваивается значение run_name, если этот необязательный аргумент не равен None; в противном случае будет установлено значение .

Давайте посмотрим на пример модуля runpy:

Сначала пользователь должен сохранить следующий файл как сценарий с именем runpy_example.py.

def add(p, q, r, s, t): return p + q + r + s + t def main(): p = 4 q = 6 r = 2 s = 8 t = 7 print("sum of p, q, r, s, t EnlighterJSRAW" data-enlighter-language="python"> import runpy_example as runp runp.main()

Хотя пользователь может выполнить указанный выше файл, не импортируя его:

import runpy runpy.run_module('runpy_example', run_name='__main__')

Поиск и выполнение модулей в Python

Пользователь также может использовать функцию run_path():

runpy.run_path('runpy_example.py', run_name='__main__')

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

Как обсуждалось ранее, runpy также поддерживает переключатель -m командной строки Python:

C:\python37>python -m runpy_example

Заключение

В этой статье мы обсудили, как пользователи могут находить модули и выполнять их, используя функции модуля runpy в Python.

Источник

How do I find the current module name in Python?

A module can find out its own module name by looking at the predefined global variable __name__. If this has the value ‘__main__’, the program is running as a script.

Читайте также:  Html style table row background

Example

def main(): print('Testing…. ') ... if __name__ == '__main__': main()

Output

Modules that are usually used by importing them also provide a command-line interface or a selftest, and only execute this code after checking __name__.

The__name__ is an in-built variable in python language, we can write a program just to see the value of this variable. Here’s an example. We will check the type also −

Example

print(__name__) print(type(__name__))

Output

Example

def myFunc(): print('Value of __name__ = ' + __name__) if __name__ == '__main__': myFunc()

Output

Value of __name__ = __main__

Example

Now, we will create a new file Demo2.py. In this we have imported Demo and called the function from Demo.py.

import Demo as dm print('Running the imported script') dm.myFunc() print('\n') print('Running the current script') print('Value of __name__ = ' + __name__)

Output

Running the imported script Value of __name__ = Demo Running the current script Value of __name__ = __main__

Источник

Оцените статью