在ipython中运行python脚本
可以从ipython内部运行python脚本(而不是模块)而不指示其路径吗?我试图设置PYTHONPATH,但它似乎只适用于模块。 我想执行在ipython中运行python脚本,python,path,ipython,Python,Path,Ipython,可以从ipython内部运行python脚本(而不是模块)而不指示其路径吗?我试图设置PYTHONPATH,但它似乎只适用于模块。 我想执行 %run my_script.py 不在包含文件的目录中。在python中,模块和脚本之间没有区别;您可以同时执行脚本和模块。该文件必须位于pythonpath AFAIK上,因为python必须能够找到有问题的文件。如果python是从一个目录执行的,那么该目录将自动添加到pythonpath中 有关模块与脚本的更多信息,请参阅 还有一个内置函数exe
%run my_script.py
不在包含文件的目录中。在python中,模块和脚本之间没有区别;您可以同时执行脚本和模块。该文件必须位于pythonpath AFAIK上,因为python必须能够找到有问题的文件。如果python是从一个目录执行的,那么该目录将自动添加到pythonpath中 有关模块与脚本的更多信息,请参阅
还有一个内置函数execfile(filename),可以执行您想要执行的操作。
%run
magic有一个参数file\u finder
,用于获取要执行的文件的完整路径(请参阅);正如您所注意到的,它只是在当前目录中查找,必要时添加“.py”
似乎没有办法指定要从%run
magic中使用哪个文件查找器,但是没有办法阻止您定义自己的magic命令,该命令使用适当的文件查找器调用%run
作为一种非常恶劣的黑客行为,您可以使用自己的:
IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder
老实说,以IPython API的变化速度,它很可能会像定义自己的魔法一样继续工作。如何在IPython中运行脚本
在“my_script.py”目录中,您只需执行以下操作即可:
%run ./my_script.py
对于Python 3.6.5
import os
os.getcwd()
runfile('testing.py')
import
本质上与JavaScript或Perl中的exec()
相同。语法%run abc.py的+1——正在尝试使用路径:%run../scripts/my_scripts例如,对于使用Click库开发的CLI脚本,它对我不起作用,我得到:IOErrorTraceback(最近一次调用)/home/miguelfg/workspace/projects********/db_preparency.py in()1270 1271如果name==“main”:->1272 main()1273 1274…这也是我的想法。但是,实际上模块可以导入,但解释器无法找到脚本,除非从它们所属的目录启动。有关详细信息,请阅读。它详细说明了python查找文件必须放在哪里,更具体地说,许多模块可以使用“if\uuu name\uuu
==”\uu main\uuu
':“末尾的行是runfile()
一个ipython
的命令作为脚本?对我来说,这不是现成的。简单和简洁的最佳答案SyntaxError:invalid syntax
在Python控制台上。Debian9上的Python 3.5.3。但是,它可以在IPython上工作。@rotton这是因为%run
是一个IPython魔术命令,而不是Python语言本身的一部分。
import os
os.getcwd()
runfile('testing.py')