Запуск модуля из интерпретатора ipython вместо командной строки - PullRequest
7 голосов
/ 09 марта 2012

Я работаю над пакетом, и у меня есть такая структура:

 mypackage/
    __init__.py
    __main__.py
    someotherstuff.py
    test/
        __init__.py
        testsomeotherstuff.py

Я настроил его так, чтобы функция main .py выполняла некоторые модульные тестыи выполнение python mypackage из командной строки работает нормально.Однако часто я хочу дебютировать с использованием ipython, но из интерпретатора run mypackage выдает ошибку ERROR: File 'mypackage.py' not found.Я могу запустить его вручную, выполнив run mypackage/__main__.py, но почему-то это кажется неправильным.Что-то еще, что я должен был сделать, чтобы настроить это правильно?

1 Ответ

7 голосов
/ 09 марта 2012

Запуск пакета как программы был представлен в Python 2.5. Я не думаю, что IPython имеет встроенную функцию для этого, но начиная с версии 2.7 стандартная библиотека Python имеет, а именно, функцию runpy.run_module(). Обратите внимание, что это немного отличается от IPython %run, поскольку он возвращает глобальный словарь модуля, а не импортирует его непосредственно в область интерпретатора.

...