首页 文章

在ipython中运行python脚本

提问于
浏览
97

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

%run my_script.py

不在包含该文件的目录中 .

4 回答

  • 16

    从“my_script.py”目录中你可以简单地做到:

    %run ./my_script.py
    
  • 78

    如何在Ipython中运行脚本

    import os
    filepath='C:\\Users\\User\\FolderWithPythonScript' 
    os.chdir(filepath)
    %run pyFileInThatFilePath.py
    

    应该这样做

  • 19

    在python中,模块和脚本之间没有区别;您可以执行脚本和模块 . 该文件必须位于pythonpath AFAIK上,因为python必须能够找到有问题的文件 . 如果从目录执行python,则该目录会自动添加到pythonpath中 .

    有关模块与脚本的更多信息,请参阅What is the best way to call a Python script from another Python script?

    还有一个内置函数execfile(filename)可以执行您想要的操作

  • 15

    %run magic有一个参数 file_finder ,用于获取要执行的文件的完整路径(参见here);如你所知,它只是在当前目录中查找,如有必要,附加".py" .

    似乎没有办法从 %run 魔术中指定要使用哪个文件查找器,但没有什么可以阻止您定义自己的魔术命令,该命令使用适当的文件查找器调用 %run .

    作为一个非常讨厌的黑客,您可以使用自己的默认 file_finder 覆盖:

    IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder
    

    说实话,按照IPython API的变化速度,可能会继续工作,因为定义自己的魔法就是 .

相关问题