如何修复“ poppler是否已安装并在PATH中?”在R中

时间:2019-03-28 22:36:36

标签: python r poppler reticulate

我正在R中使用网状结构运行python脚本。我使用py_discover_config()查找Python配置。我正在使用水蟒。我不太了解环境以及为什么需要一个环境。

即使使用conda_install安装软件包,我也尝试过use_python()和use_condaenv()。

library(tidyverse)
library(jsonlite)
library(reticulate)

py_discover_config()
# Set the path to the Python executable file
source_python("~/projects/stiekemthuis/API.py")

json_list <- api_fun() %>% toJSON()

导入python库没有问题:

from pdf2image import convert_from_path
import numpy as np
from pathlib import Path
import io, json
import os
from PIL import Image
import requests
import sys

第25行出现错误:

pages = convert_from_path(files[0], 300)

py_call_impl(可调用,dots $ args,dots $ keywords)错误:   PDFInfoNotInstalledError:无法获取页数。 poppler是否已安装并且在PATH中?

我试图将setwd()设置为poppler二进制文件的路径。 该怎么办?

1 个答案:

答案 0 :(得分:0)

我停止使用该库(网状结构),并开始使用system2通过python命令直接执行,随后是脚本路径:

command = "python"
allArgs = c(path2script)

output = system2(command, args=allArgs, stdout=TRUE)

json_list <-output %>% fromJSON()

我在python脚本中使用了另一个线程的代码:

print(json.dumps(res, sort_keys=False, indent=2, separators=(',', ': ')))

因为我的Json字符串格式错误。