Запуск python script внутри ipython

Можно ли запустить python script (не модуль) изнутри ipython без указания его пути? Я попытался установить PYTHONPATH, но, похоже, он работает только для модулей. Я хотел бы выполнить

%run my_script.py

не находясь в каталоге, содержащем файл.

Ответ 1

из каталога "my_script.py" вы можете просто сделать:

%run ./my_script.py

Ответ 2

Как запустить script в Ipython

import os
filepath='C:\\Users\\User\\FolderWithPythonScript' 
os.chdir(filepath)
%run pyFileInThatFilePath.py

Это должно сделать это

Ответ 3

В python нет разницы между модулями и скриптами; Вы можете выполнять как скрипты, так и модули. Файл должен находиться в pythonpath AFAIK, потому что python должен иметь возможность найти файл, о котором идет речь. Если python выполняется из каталога, то каталог автоматически добавляется к pythonpath.

Обратитесь к Каков наилучший способ вызова Python script из другого Python script? для получения дополнительной информации о модулях и сценариях

Существует также встроенная функция execfile (имя файла), которая будет делать то, что вы хотите

Ответ 4

Магия %run имеет параметр file_finder, который используется для получения полного пути к исполняемому файлу (см. здесь); как вы заметили, он просто выглядит в текущем каталоге, при необходимости добавляя ".py".

Кажется, что нет способа указать, какой файловый искатель использовать из магии %run, но вам нечего мешать вам определить свою собственную магическую команду, которая вызывает %run с помощью соответствующего поиска файлов.

Как очень неприятный взлом, вы можете переопределить стандартный file_finder своим:

IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder

Честно говоря, с изменением API-интерфейса IPython, который, скорее всего, будет продолжать работать как определение вашей собственной магии.

Ответ 5

для Python 3.6.5 импорт os os.getcwd() runfile ('testing.py')