2010-10-23 5 views
11

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

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

Например, когда я начинаю IPython:

$ ipython 

... 

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

In [1]: 

Нечто подобное SymPy's live shell нашел в учебнике страниц.

ответ

3

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

+0

Спасибо! Теперь я проверю это. – rubik

+8

Обратите внимание, что iPython с тех пор устарел 'ipythonrc'. Новый файл конфигурации имеет одинаковую функциональность (и многое другое), как описано [в их документации] (http://ipython.org/ipython-doc/dev/config/ipython.html#example). –

+0

Эта ссылка сейчас мертва. См. Http://stackoverflow.com/questions/20835977/ для разрешения. –

13

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

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

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

+1

Спасибо тоже! Но теперь, как я могу выбрать два принятых ответа? – rubik

+6

@rubik: @eumiro: eumiro ответил первым, и его ответ уникален, и мой ответ тоже работает. Примите ответ Эумиро. – pyfunc

+0

Хорошо, еще раз спасибо – rubik

4

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

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

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

# search for *.pth files in the current directory 
import site; site.addsitedir('') 
Смежные вопросы