R中splashr调用报错:Python docker模块未找到问题咨询
解决R中
install_splash()报错的问题 你已经手动完成了Splash容器的安装和启动,这其实已经满足了使用Splash的核心前提——install_splash()本质是用来自动帮你部署Splash容器的工具函数,你完全可以跳过它,直接连接已经运行的Splash服务。不过如果想弄清楚报错根源,或者后续想依赖这个函数管理容器,下面是两种清晰的解决方案:
方案一:跳过install_splash(),直接连接已启动的Splash
既然你已经通过docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash启动了容器,Splash服务已经在http://localhost:8050正常运行了。以常用的splashr包为例,直接用以下代码连接即可:
library(splashr) splash_active() # 先检查服务是否正常运行 # 如果返回TRUE,就可以直接使用Splash功能了,比如渲染网页: render_html("https://example.com")
方案二:安装Python的docker模块解决报错
报错提示Python module docker was not found,是因为install_splash()依赖Python的docker库来和Docker后台交互。你需要给R检测到的这个Python环境(路径为C:\Users\m-joudy\AppData\Local\Programs\Python\Python36\python.exe)安装docker模块:
- 打开命令提示符(CMD)或PowerShell
- 运行以下命令完成安装:
C:\Users\m-joudy\AppData\Local\Programs\Python\Python36\python.exe -m pip install docker
- 安装完成后回到R中重新运行
install_splash()即可(不过其实你已经手动启动了容器,这一步实际没必要执行)
额外提醒
install_splash()只是容器部署的自动化工具,既然你已经手动完成了镜像拉取和容器启动,完全不需要再调用这个函数,直接使用已运行的Splash服务就好。如果后续需要管理容器(停止、重启等),直接用Docker命令操作反而更直接。
内容的提问来源于stack exchange,提问作者mjoudy




