在pycharm 2023.2.1中运行由R语言编写的ipynb文件

在pycharm 2023.2.1中运行由R语言编写的ipynb文件

背景与目标:

项目中包含由R语言编写的ipynb文件,希望能在pycharm中运行该ipynb文件。

最终实现情况:

未能直接在pycharm中运行该ipynb文件,但是替代的实现方法有:

①能够在网页端运行由R语言编写的ipynb文件。

②能够将该ipynb文件中的内容复制到一个R语言文件(以.R为后缀)中,然后在pycharm中直接运行该R语言文件。

一、安装jupyter

在pycharm中打开该项目,配置好项目的python interpreter,即python环境。

1、在该python环境中安装jupyter:

pip install jupyter

2、生成jupyter的配置文件jupyter_notebook_config.py

在anaconda的终端命令行中输入:

jupyter notebook --generate-config

即可生成配置文件。

如果是root用户,执行命令需要加上--allow-root选项,即:

jupyter notebook --generate-config --allow-root

3、生成密码

在打开jupyter notebook时需要使用密码。

在anaconda的终端命令行中输入:

jupyter notebook password

出现如下提示,在xxxx位置输入个人设置的密码即可:

Enter password: xxxx
Verify password: xxxx
[NotebookPasswordApp] Wrote hashed password to C:\Users\PC\...\jupyter_notebook_config.json

执行以上命令后,可以在C:\Users\PC\...\jupyter_notebook_config.json看到与输入密码对应的哈希字符串:

{"NotebookApp": {"password": "xxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
}

4、将哈希密码添加到配置文件jupyter_notebook_config.py

在配置文件jupyter_notebook_config.py中添加如下代码:

# ip设置为*
c.NotebookApp.ip = '*'
# 密码设置为sha1
c.NotebookApp.password = u'sha1:xxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # 'sha1:'后面的字符串即为jupyter_notebook_config.json中的哈希字符串
# 浏览器设置不打开
c.NotebookApp.open_browser = False
# 设置固定的接口
c.NotebookApp.port = 8889

另外,如果需要指定启动jupyter后jupyter notebook的工作目录,可以在此配置文件中添加如下代码:

# 设置工作目录
c.NotebookApp.notebook_dir = 'G:\....'

如果不指定启动jupyter后jupyter notebook的工作目录,在anaconda终端命令行启动jupyter时所在的目录路径即为启动jupyter后jupyter notebook的工作目录。

参考:

远程jupyter+pycharm配置 (一)之安装与使用技巧

配置jupyter notebook-----更改工作目录

二、启动jupyter

2.1 启动jupyter服务器

在anacodna终端命令行中激活安装了jupyter的虚拟环境,然后使用下方命令启动jupyter:

jupyter notebook

运行成功时,终端出现类似如下内容的响应:

[I 16:52:50.678 NotebookApp] Serving notebooks from local directory: G:\....
[I 16:52:50.678 NotebookApp] Jupyter Notebook 6.5.4 is running at:
[I 16:52:50.679 NotebookApp] http://....:8889/
[I 16:52:50.679 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

其中,G:\....指在步骤一中指定的工作目录路径(如果步骤一中没有指定,则会指向启动jupyter时所在的目录路径),http://....:8889/指用浏览器查看jupyter notebook的网址,将此网址复制到浏览器后输入密码(在步骤一中个人设置的密码,不是哈希字符串),即可看到工作目录路径下的文件列表。

2.2 在网页端运行ipynb文件

打开工作目录路径中的某个自己创建的ipynb文件,如果刚打开文件时,界面右上角显示“内核就绪“(一段时间后消失)、有下图所示的标志且文件中单元格的代码可以正常运行,则说明在网页中可以正常使用jupyter notebook运行ipynb文件。
在这里插入图片描述

若在网页端对ipynb文件进行了修改,保存后,pycharm中查看该文件可以发现该文件已同步修改。

环境信息:python==3.11.4, jupyter=1.0.0, ipykernel=6.19.2, tornado=6.4.1

2.3 在pycharm窗口直接运行ipynb文件?[未成功]

需要先复制网址到浏览器、在浏览器中运行ipynb文件不如在pycharm窗口中直接运行ipynb文件方便。但是目前试了很多方法,都无法在pycharm窗口中直接运行jupyter notebook,只能在网页端运行。

试过的方法包括直接使用managed server配置jupyter server,都遇到报错,未能解决。

2.3.1 直接使用managed server

若直接使用managed server,无法连接jupyter服务器,会出现如下报错信息,不懂是什么意思。

Connect to DESKTOP-xxxx:8889 [DESKTOP-xxxx/172.27.48.1, DESKTOP-xxxx/192.168.3.13, DESKTOP-xxxx/192.168.3.10, DESKTOP-xxxx/fe80:0:0:0:ea0f:7ecd:6717:1fb9%42, DESKTOP-xxxx/fe80:0:0:0:8fbf:8ab7:7778:7036%13, DESKTOP-xxxx/fe80:0:0:0:e19a:6625:31bc:f80c%12, DESKTOP-xxxx/fd62:fe1e:c324:8700:d01e:faeb:af2:c4a2, DESKTOP-xxxx/fd62:fe1e:c324:8700:7d0:ca8f:4bde:9c9a] failed: Connection refused: connect
2.3.2 配置jupyter server

参考远程jupyter+pycharm配置 (一)之安装与使用技巧,在配置jupyter servers时,不使用managed server、使用configured server,尝试输入的Jupyter Server URL有:

  • http://…:8889/(在2.1中得到)

  • http://…:8889?token=(”…“的内容写成了localhost或者127.0.01)

  • http://…:8889?token=xxxx(”…“的内容写成了localhost或者127.0.01)

  • http://…:8889/?token=xxxx(”…“的内容写成了localhost或者127.0.01)

点击Apply按钮后均得到Jupyter Server URL is malformed(格式不正确)的报错信息。文章Pycharm2023.1连接远程jupyter notebook遇到的问题的作者建议不要钻牛角尖。

经过多次尝试后,发现不管填写的Jupyter Server URL是什么,如果jupyter server还没有启动,这些URL都会被认为是”malformed“的。先在anaconda终端命令行中启动jupyter,再填写这个URL(写成http://....:8889(最后一个"/"可有可无;这个URL需要手动输入密码)或者http://....:8889?token=xxxx(这个URL不需要手动输入密码)),就不会再出现格式不正确的报错信息。

但是,配置完成jupyter server后,仍会弹出如下报错信息,暂时没找到解决方法。

Error with connection to Jupyter: server responded with 403 on Request(method=GET, uri=http://DESKTOP-IC2DEU6:8889/api/kernelspecs/, headers=[], body=null, redirectLimit=10, context=Context(mayInteractUi=true)). [200] was expected.

网上提到的解决方法有:

  • 使用其他版本的Pycharm

  • 修改tornado版本为5.1.1(对应的python版本也要修改,与5.1.1的tornado适配的python版本是3.7)(参考文章Pycharm无法使用jupyter)

    创建一个新的python虚拟环境尝试后无效。默认安装的tornado版本>6,此时只降低tornado版本甚至会出现在网页端无法连接内核的问题。

    与5.1.1的tornado冲突的包有:terminado、notebook、jupyter-server、jupyter-client、ipykernal。感觉需要多个包版本协调才有可能克服这个问题,但是追溯起来有些复杂,暂时作罢。

    在这里插入图片描述

  • 修改tornado版本为4.5.3(问题同上)

  • 修改ipykernel版本为4.5.2(问题同上)

三、安装R和R内核

3.1 安装R

安装R的过程可参考文章如何在 Pycharm 中高效使用 R 语言 (图文详解)。

3.2 安装IRkernel

安装R后,打开R console,R console窗口如下图所示。
在这里插入图片描述
1、在R console中输入下方命令,安装IRkernel:

install.packages('IRkernel')

等待一段时间即安装完成。最终提示下载的二进制程序包在C:\Users\PC\AppData\Local\Temp\RtmpMNCSMh\downloaded_packages

2、在R console中输入下方命令,在当前R安装中注册kernel:

IRkernel::installspec()

执行此命令后,会安装一个名为ir的内核。

3、在R console中输入下方命令,指定kernel安装范围为全系统(而不仅是当前用户):

IRkernel::installspec(user = FALSE)

4、在anaconda终端命令行中(启动任一环境均可)使用下方命令检查当前jupyter可使用的内核,检查内核安装是否成功:

jupyter kernelspec list

如果列出的Available kernels中出现ir(如果先前使用过python,列表中一般还会有python3)即说明R内核安装成功。

此时启动jupyter,在网页端打开工作目录中的某个R语言编写的ipynb文件,如果默认使用的还是python3的内核(看界面右上角可知使用的内核),可以点击"kernel"->”Change kernel“->"R"更换内核为R内核。

参考:juypyter notebook安装 R核(IRkernel)

四、在pycharm中运行R语言文件

4.1 安装R相关的插件

在Pycharm中点击"Files"->“Settings”->“Plugins”->“Marketplace”,在搜索栏中搜索安装插件“R language for Intellij”。
在这里插入图片描述
等待一段时间后即可安装完成。

4.2 编辑R的环境变量

在windows中搜索环境变量,点击“环境变量”,选中系统变量的中“Path”,点击“编辑” ->“新建” ,将R安装的路径(具体到bin文件夹,如G:\Software\R\R-4.4.1\bin)添加进去。

参考:pycharm实现R语言运行环境安装配置的实现步骤

4.3 在Pycharm中配置R解释器

在Pycharm中点击"Files"->“Settings”->“Project: xxxx”->“R Settings”,在Project R Interpreter处添加(Add)R解释器,选择4.2中配置的R安装路径下的R.exe,即G:\Software\R\R-4.4.1\bin\R.exe

此时出现提示:Unsupported R version: '4.4.1'. Do you want to continue?,点击继续,后续发现并不影响使用。

之后就可以在Pycharm中运行R语言程序了(虽然同样不能直接在Pycharm窗口中运行由R语言编写的ipynb文件,但是可以将其中的内容复制到R语言文件中运行)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3247915.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

基于 Web 的家校联系系统的设计与实现

目录 基于 Web 的家校联系系统的设计与实现 一、绪论 (一)研究背景 (二) 研究目的 (三) 研究意义 二、需求分析 (一) 功能需求 (二) 性能需求 &#…

物联网实训室的核心功能有哪些?

随着物联网技术的迅猛发展和广泛应用,唯众凭借其深厚的技术积累和丰富的行业经验,为职业院校提供了全面的物联网实训室解决方案。这些实训室不仅为学生提供了真实、实用、创新的实践环境,还促进了产学研用的深度融合,推动了物联网…

智能锁赛道内卷加剧,磐金锁王42年来行稳致远,底气何在?

中国智能门锁市场正处于一个快速发展的黄金阶段,呈现出了前所未有的繁荣。奥维云网(AVC)的线上推总数据显示,2024年1-5月,中国家用智能门锁线上市场推总销量规模为274.3万套,同比增长28.3%;推总…

前端基础之Grid布局

【图书推荐】《HTML5CSS3 Web前端开发与实例教程(微课视频版)》-CSDN博客 Grid布局概述 Grid布局又称为网格布局(Grid Layout),是一种现代且功能极为强大的二维网页布局系统。它将容器划分为行和列,产生单…

71.PLC Settings for OPCSERVER(KEPWare)- SAP ME实施

目录 0.目的 1.三菱PLCMitsubishi Ethernet 1.1 型号FX-3U的配置 选择Operational settings 按下图设置通讯参数 选择Open settings 按下图设置通讯端口 选择Router ralay parameter 按下图设置网关 1.2型号Q Series 按下图设置IP、网关 按下图设置端口…

VDI 与 VM的區別

VDI 或虚拟桌面基础架构是一种计算机虚拟化形式,允许将桌面托管在远程服务器上。 它允许许多用户从一台中央服务器访问自己的虚拟桌面。 每个虚拟桌面都在单独的操作系统上运行,并拥有自己的资源,例如 CPU、内存和存储。 虚拟机 (VM) 是虚拟…

高校转专业新政解读:自由转出有序转入,激发个性发展与教育活力

随着社会对人才需求的多样化和个性化发展趋势,我国高等教育正迎来一场深刻的变革。近期,不少高校公布了本科生转专业的新政策,这一变化不仅为学生提供了更广阔的发展空间,也为高校的教育改革和专业建设带来了新的挑战和机遇。 一、…

开放式激光振镜运动控制器的激光清洗应用

市场应用背景 随着我国半导体、3C电子、汽车及精密制造等关键行业的快速发展,工业清洗的质量、效率和环保性日益受到重视。激光清洗作为一种无需使用化学清洗剂、无二次废物产生且低能耗的绿色技术,正迅速成为工业清洗领域的热点。 激光清洗通过高能量…

wps office 2019 Pro Plus 集成序列号Vba安装版教程

前言 wps office 2019专业增强版含无云版是一款非常方便的办公软件,我们在日常的工作中总会碰到需要使用WPS的时候,它能为我们提供更好的文档编写帮助我们更好的去阅读PDF等多种格式的文档,使用起来非常的快捷方便。使用某银行专业增强版制作…

深度学习模型快速开发平台推荐

前言 本文面向深度学习初学者或者工程师,推荐几个常用的深度学习模型快速开发平台。可以帮助初学者快速跑通模型,帮助工程师快速对模型进行部署和应用。 huggingface 简介 不多介绍,全球最大的模型托管平台,该平台最大的特点是…

数据库系统概论:数据库系统模式

数据库系统在我们的数字世界中扮演着至关重要的角色,无论是个人设备还是企业级应用,数据的有效管理和访问都是必不可少的。而数据库系统的模式结构是确保数据一致性和可访问性的关键组成部分。 数据库系统模式 基本概念 型和值 数据模型中有 型(type…

Bentley技术赋能水务基础设施,助力水质改善

ProjectWise Components Center 助力简化可重复工作流,节省 370 多万英镑的成本,支持环境可持续发展 满足严格的除磷要求 英国水务行业的第七项资产管理计划将水质改善方案列为工作的重中之重。该计划尤其注重减少排放到水道(包括水流经过的天…

2024牛客多校D.XOR of Suffix Sums

题目 题目要求的是求后缀和的异或和。首先我们考虑疑惑和情况下,什么时候为1,很显然,在当前二进制位0和1 的其中任意一个个数为奇数的时候才能让当前二进制位为1。 再观察到,题目中的模数很奇怪,他是。那么大于的数位…

Jmeter关联

案例脚本实现:选择商品加入购物车 客户端发送一个登录的HTTP请求,服务端返回一个带着token的响应,后续发出一个带token信息的加入购物车的HTTP请求,返回响应。 关联:当请求直接由依赖关系的时候,比如一个请…

“论软件维护方法及其应用”精选范文,软考高级论文,系统架构设计师论文

论文真题 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满足 新的需求而修改软件的活动。在软件系统运行过程中,软件需要维护的原因是多种多样的, 根据维护的原因不同,可以将软件维护…

FastAPI 学习之路(五十六)将token缓存到redis

在之前的文章中,FastAPI 学习之路(二十九)使用(哈希)密码和 JWT Bearer 令牌的 OAuth2,FastAPI 学习之路(二十八)使用密码和 Bearer 的简单 OAuth2,FastAPI 学习之路&…

[Redis]典型应用——缓存

什么是缓存 缓存(Cache)是一种用于临时存储数据的机制,目的是提高数据访问速度和系统性能。 核心思路就是把一些常用的数据放到触手可及(访问速度更快)的地方,方便随时读取 缓存是一个相对的概念,比如说&#xff0c…

域泛化(Domain Generalization)

仓库:https://github.com/jindongwang/transferlearning 综述:https://arxiv.org/pdf/2103.03097、https://arxiv.org/pdf/2103.02503 1.问题及解决方案 出发点:需要解决domain shift、out-of-distribution (OOD)问题 解决方案:绕…

面试题整理 - 进程与线程问题

1.进程线程区别: 1.从本质上区分: 进程是操作系统资源分配的基本单位 线程是任务调度和执行的基本单位 2.在开销方面: 每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销 线程可以看做轻量级的进程&…

爬虫案例(读书网)(下)

上篇链接: CSDN-读书网https://mp.csdn.net/mp_blog/creation/editor/139306808 可以看见基本的全部信息:如(author、bookname、link.....) 写下代码如下: import requests from bs4 import BeautifulSoup from lxml import etreeheaders{…