Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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
Python 使用';网状';R中的函数_Python_R_Arcpy_Reticulate - Fatal编程技术网

Python 使用';网状';R中的函数

Python 使用';网状';R中的函数,python,r,arcpy,reticulate,Python,R,Arcpy,Reticulate,在调用网状函数的单个R脚本中运行两个连续的python脚本时出现问题。当我分别运行它们时,它工作得非常好。我错过什么了吗?我是否需要某种函数在执行第二个py_运行之前关闭上一个py_运行?请注意,我使用的是ArcGIS“arcpy”工具 这里有一个例子。 如果我在Rstudio会话中运行此命令: use_python("C:/Python27/ArcGISx6410.7/python.exe", required = T) import("arcpy")

在调用网状函数的单个R脚本中运行两个连续的python脚本时出现问题。当我分别运行它们时,它工作得非常好。我错过什么了吗?我是否需要某种函数在执行第二个py_运行之前关闭上一个py_运行?请注意,我使用的是ArcGIS“arcpy”工具

这里有一个例子。 如果我在Rstudio会话中运行此命令:

        use_python("C:/Python27/ArcGISx6410.7/python.exe", required = T)
        import("arcpy")
        import("os")
        import("glob")
        import("re")
        import("math")

        pythonRun1 = paste0("modelName = ", "'", modelName, "'")

        py_run_string(pythonRun1)
        py_run_file("C:/GIS/Bathymetry_UdeM/Radial_Linear_Mean_R/Output/Workflow/InterpolateResults.py")
        use_python("C:/Python27/ArcGISx6410.7/python.exe", required = T)
        import("arcpy")
        import("arcpy.sa")
        import("os")
        import("glob")
        import("re")
        import("math")

        pythonRun2 = paste0("modelName = ", "'", modelName, "'")

        py_run_string(pythonRun2)
        py_run_file("C:/GIS/Bathymetry_UdeM/Radial_Linear_Mean_R/Output/Workflow/FocalMean.py")
然后在第二次Rstudio会话中:

        use_python("C:/Python27/ArcGISx6410.7/python.exe", required = T)
        import("arcpy")
        import("os")
        import("glob")
        import("re")
        import("math")

        pythonRun1 = paste0("modelName = ", "'", modelName, "'")

        py_run_string(pythonRun1)
        py_run_file("C:/GIS/Bathymetry_UdeM/Radial_Linear_Mean_R/Output/Workflow/InterpolateResults.py")
        use_python("C:/Python27/ArcGISx6410.7/python.exe", required = T)
        import("arcpy")
        import("arcpy.sa")
        import("os")
        import("glob")
        import("re")
        import("math")

        pythonRun2 = paste0("modelName = ", "'", modelName, "'")

        py_run_string(pythonRun2)
        py_run_file("C:/GIS/Bathymetry_UdeM/Radial_Linear_Mean_R/Output/Workflow/FocalMean.py")
它工作得很好。但当我试图连续执行这两个代码块时:

        use_python("C:/Python27/ArcGISx6410.7/python.exe", required = T)
        import("arcpy")
        import("os")
        import("glob")
        import("re")
        import("math")

        pythonRun1 = paste0("modelName = ", "'", modelName, "'")

        py_run_string(pythonRun1)
        py_run_file("C:/GIS/Bathymetry_UdeM/Radial_Linear_Mean_R/Output/Workflow/InterpolateResults.py")

        #########################################################################################################

        use_python("C:/Python27/ArcGISx6410.7/python.exe", required = T)
        import("arcpy")
        import("arcpy.sa")
        import("os")
        import("glob")
        import("re")
        import("math")

        pythonRun2 = paste0("modelName = ", "'", modelName, "'")

        py_run_string(pythonRun2)
        py_run_file("C:/GIS/Bathymetry_UdeM/Radial_Linear_Mean_R/Output/Workflow/FocalMean.py")
我得到noData作为我的最终输出。从技术上讲,脚本的第二部分不会回调任何错误,但代码不会执行它应该执行的操作

有人知道这两种方法(即,单独和连续的py_运行执行)之间的差异是什么原因吗

谢谢大家

试着构造一个。如果不能运行代码,很难回答这样的问题。不过,这里有几个故障排除的起点

  • 我不建议运行两次
    netracite::use_python
    。我的理解是,一旦Python解释器嵌入到R会话中,它就无法更改,因此,当第二次调用它时,充其量它可能没有效果,最坏的情况下,它可能会导致问题

  • 如果没有显示任何值绑定到
    model_name
    的代码,是否应该在两个代码块之间更改该值

  • 第一个代码块中是否有任何正在修改的状态影响第二个代码块的计算?例如,如果在第一个代码块中创建了一个变量,该变量将隐藏在第二个代码块中使用的变量上

  • 尝试直接在Python中运行类似的代码,并确保其正常工作。如果没有,那么在该环境中调试将更容易

  • 祝你好运

    试着构造一个。如果不能运行代码,很难回答这样的问题。不过,这里有几个故障排除的起点

  • 我不建议运行两次
    netracite::use_python
    。我的理解是,一旦Python解释器嵌入到R会话中,它就无法更改,因此,当第二次调用它时,充其量它可能没有效果,最坏的情况下,它可能会导致问题

  • 如果没有显示任何值绑定到
    model_name
    的代码,是否应该在两个代码块之间更改该值

  • 第一个代码块中是否有任何正在修改的状态影响第二个代码块的计算?例如,如果在第一个代码块中创建了一个变量,该变量将隐藏在第二个代码块中使用的变量上

  • 尝试直接在Python中运行类似的代码,并确保其正常工作。如果没有,那么在该环境中调试将更容易


  • 祝你好运

    我不熟悉R-Python接口,但可能需要延迟吗?如果直接在Python会话中运行类似代码,它是否正常工作?我不熟悉R-Python接口,但可能需要延迟吗?如果直接在Python会话中运行类似代码,它是否正常工作?