是否可以从ipython内部运行python脚本(而不是模块)而不指示其路径?我试图设置PYTHONPATH但它似乎只适用于模块 . 我想执行
%run my_script.py
不在包含该文件的目录中 .
从“my_script.py”目录中你可以简单地做到:
%run ./my_script.py
import os filepath='C:\\Users\\User\\FolderWithPythonScript' os.chdir(filepath) %run pyFileInThatFilePath.py
应该这样做
在python中,模块和脚本之间没有区别;您可以执行脚本和模块 . 该文件必须位于pythonpath AFAIK上,因为python必须能够找到有问题的文件 . 如果从目录执行python,则该目录会自动添加到pythonpath中 .
有关模块与脚本的更多信息,请参阅What is the best way to call a Python script from another Python script?
还有一个内置函数execfile(filename)可以执行您想要的操作
%run magic有一个参数 file_finder ,用于获取要执行的文件的完整路径(参见here);如你所知,它只是在当前目录中查找,如有必要,附加".py" .
%run
file_finder
似乎没有办法从 %run 魔术中指定要使用哪个文件查找器,但没有什么可以阻止您定义自己的魔术命令,该命令使用适当的文件查找器调用 %run .
作为一个非常讨厌的黑客,您可以使用自己的默认 file_finder 覆盖:
IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder
说实话,按照IPython API的变化速度,可能会继续工作,因为定义自己的魔法就是 .
4 回答
从“my_script.py”目录中你可以简单地做到:
如何在Ipython中运行脚本
应该这样做
在python中,模块和脚本之间没有区别;您可以执行脚本和模块 . 该文件必须位于pythonpath AFAIK上,因为python必须能够找到有问题的文件 . 如果从目录执行python,则该目录会自动添加到pythonpath中 .
有关模块与脚本的更多信息,请参阅What is the best way to call a Python script from another Python script?
还有一个内置函数execfile(filename)可以执行您想要的操作
%run
magic有一个参数file_finder
,用于获取要执行的文件的完整路径(参见here);如你所知,它只是在当前目录中查找,如有必要,附加".py" .似乎没有办法从
%run
魔术中指定要使用哪个文件查找器,但没有什么可以阻止您定义自己的魔术命令,该命令使用适当的文件查找器调用%run
.作为一个非常讨厌的黑客,您可以使用自己的默认
file_finder
覆盖:说实话,按照IPython API的变化速度,可能会继续工作,因为定义自己的魔法就是 .