Автоматическая загрузка модуля при запуске Python - PullRequest
12 голосов
/ 23 октября 2010

Я хочу, чтобы IPython или интерпретатор Python автоматически загружали модуль при запуске.

Возможно ли это?

Например, когда я запускаю IPython:

$ ipython

...

>>> from __future__ import division
>>> from mymodule import *

In [1]:

Что-то вроде живой оболочки SymPy , найденной на страницах учебника.

Ответы [ 4 ]

15 голосов
/ 23 октября 2010

Имейте .pythonstartup в вашем домашнем каталоге и загружайте туда модули и указывайте PYTHONSTARTUP env на этот файл.

Python-команды в этом файле выполняются до того, как первое приглашение отобразится в интерактивном режиме.

Я использую его для включения завершения командной строки в оболочке интерпретатора Python

4 голосов
/ 23 сентября 2013

Если параметр -S не передан в двоичный файл python, специальный модуль site импортируется по умолчанию перед передачей выполнения в ваш сценарий или в интерактивный интерпретатор.Помимо прочего модуль ищет файлы *.pth.В каждой строке файлы *.pth должны содержать либо путь для включения в sys.path, либо команду для выполнения.Модуль также импортирует sitecustomize и usercustomize (которые могут содержать произвольный код, хороший способ заставить ваших коллег сходить с ума, если они вызывают ошибки), если они существуют где-то в sys.path.

Проблема, однако, в том, что текущий каталог находится не в sys.path, когда импортируется модуль site, то есть трудно настроить ваш конкретный сценарий.

Я иногда добавляюследующая строка в начале моих сценариев, чтобы сценарий начинался с поиска файлов .pth в текущем каталоге и добавления отсутствующих путей к sys.path:

# search for *.pth files in the current directory
import site; site.addsitedir('')
4 голосов
/ 23 октября 2010

Проверьте файл ~/.ipython/ipythonrc - вы можете перечислить все модули, которые вы хотите загрузить при запуске.

1 голос
/ 20 марта 2019

Другим возможным решением является использование аргумента -i из python интерпретатора , который запускает режим взаимодействия после выполнения сценария.

Вы можете, например, использовать:

  • python -i your_module.py
  • python -i /path/to/your/module, если вы определили __main__.py
  • или даже python -i -m your.module
...