如何从python提示符执行(而不是导入)python脚本?

如何从python提示符执行(而不是导入)python脚本?,python,bash,import,module,Python,Bash,Import,Module,我需要从已经启动的Python会话执行Python脚本,就好像它是从命令行启动的一样。我正在考虑类似于在bash或sh中执行source。在Python2中,内置函数实现了这一点 execfile(filename) 如果您正在运行(我强烈推荐用于交互式python会话),您可以键入: %run filename 或 执行模块(而不是导入模块)。您将获得文件名完成,这对于ReallyLongModuleName.py来说是非常好的(您不会这样命名您的模块或任何东西)。感谢您的建议,我通常使

我需要从已经启动的Python会话执行Python脚本,就好像它是从命令行启动的一样。我正在考虑类似于在bash或sh中执行
source

在Python2中,内置函数实现了这一点

execfile(filename)
如果您正在运行(我强烈推荐用于交互式python会话),您可以键入:

%run filename 


执行模块(而不是导入模块)。您将获得文件名完成,这对于ReallyLongModuleName.py来说是非常好的(您不会这样命名您的模块或任何东西)。

感谢您的建议,我通常使用ipython,但不幸的是,对于这项任务,我需要调试一个通过Ctypes从python调用的C库。所以我需要在gdb中加载python二进制文件,运行它,导入ctypes,加载库,写下加载地址,中断到gdb,添加库符号,设置断点,继续执行python,最后加载模块。。。使用ipython会增加一个额外的步骤,因为它本身不是一个可以直接加载到gdb中的二进制文件,而是另一个python脚本:-)您必须热爱python。如何在python中执行文件:execfile.python3不起作用,您必须使用自己的模块,如导入sys类进程():def call_u_;(self,filename,globals=None,locals=None):如果globals为None,则导入sys:globals=sys.\u getframe(1)。如果locals为None,则导入globals:locals=sys.\u getframe(1)在Python 3中,.f_locals的open(filename,“r”)作为fh:exec(fh.read()+“\n”,globals,locals)sys.modules[\uu\u name]=process()是的,
execfile()
已经消失。用引号括起来的“文件名”来看。@JamesBrooks Ha-作为一个Ruby作者,我想“为什么它不被称为execute_file!”
%run filename.py