Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ipython中运行python脚本_Python_Path_Ipython - Fatal编程技术网

在ipython中运行python脚本

在ipython中运行python脚本,python,path,ipython,Python,Path,Ipython,可以从ipython内部运行python脚本(而不是模块)而不指示其路径吗?我试图设置PYTHONPATH,但它似乎只适用于模块。 我想执行 %run my_script.py 不在包含文件的目录中。在python中,模块和脚本之间没有区别;您可以同时执行脚本和模块。该文件必须位于pythonpath AFAIK上,因为python必须能够找到有问题的文件。如果python是从一个目录执行的,那么该目录将自动添加到pythonpath中 有关模块与脚本的更多信息,请参阅 还有一个内置函数exe

可以从ipython内部运行python脚本(而不是模块)而不指示其路径吗?我试图设置PYTHONPATH,但它似乎只适用于模块。 我想执行

%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')