Tyl*_*den 113 python path ipython
是否可以从ipython内部运行python脚本(而不是模块)而不指示其路径?我试图设置PYTHONPATH但它似乎只适用于模块.我想执行
%run my_script.py
Run Code Online (Sandbox Code Playgroud)
不在包含该文件的目录中.
rak*_*kke 105
从"my_script.py"目录中你可以简单地做到:
%run ./my_script.py
Run Code Online (Sandbox Code Playgroud)
Cub*_*t88 25
import os
filepath='C:\\Users\\User\\FolderWithPythonScript'
os.chdir(filepath)
%run pyFileInThatFilePath.py
Run Code Online (Sandbox Code Playgroud)
应该这样做
Sna*_*fee 16
在python中,模块和脚本之间没有区别; 您可以执行脚本和模块.该文件必须位于pythonpath AFAIK上,因为python必须能够找到有问题的文件.如果从目录执行python,则该目录会自动添加到pythonpath中.
请参阅从另一个Python脚本调用Python脚本的最佳方法是什么?有关模块与脚本的更多信息
还有一个内置函数execfile(filename)可以执行您想要的操作
eca*_*mur 15
该%run
魔术有一个参数file_finder
,它使用来获取完整路径文件来执行(见这里); 如你所知,它只是在当前目录中查找,如有必要,附加".py".
似乎没有要指定要使用的文件查找的方式,从在%run
魔术,但没有什么可以从定义自己的魔法命令调用到阻止你%run
用适当的文件查找.
作为一个非常讨厌的黑客,您可以file_finder
使用自己的默认值覆盖默认值:
IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder
Run Code Online (Sandbox Code Playgroud)
说实话,按照IPython API的变化速度,可能会继续工作,因为定义自己的魔法就是.
不完全是您问题的答案,但您可以在脚本执行结束时使用-i
ipython 参数进入 ipython:
ipython -i my_script.py
Run Code Online (Sandbox Code Playgroud)
在脚本结束时,您将进入 ipython 提示符,其中包含可用的脚本变量,就像python -i
.