在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://www.mzph.cn/news/871743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对AAC解码的理解

《对 AAC 音频解码的理解》 音频编解码技术在现代数字音频处理和传输中起着至关重要的作用,而高级音频编码(Advanced Audio Coding,简称 AAC)作为一种高效的音频压缩编码标准,被广泛应用于各种音频场景,如…

自然语言处理(NLP)——法国工程师IMT联盟 期末考试题

1. 问题1 (法语)En langue arabe lcrasante majorit des mots sont forms par des combinaisons de racines et de schmes. Dans ce mcanisme... (英语)In Arabic language the vast majority(十之八九) of…

Unity3D开发之传送带实现

/// <summary> /// 传送带 直线传送带 /// </summary> public class ConveyerBelt : MonoBehaviour {public float Speed 1;protected float mspeed;protected Vector3 direction;protected Rigidbody rd;List<GameObject> Goods new List<GameObject&…

计算机网络 VPN技术

VPN (Virtual Private Network&#xff0c;虚拟专用网络&#xff09;是一种通过公用网络&#xff08;通常是因特网&#xff09;建立专用网络的技术 VPN&#xff08;Virtual Private Network&#xff0c;虚拟专用网络&#xff09;是一种通过公用网络&#xff08;如互联网&#x…

ServiceNow UI Jelly模板注入漏洞复现(CVE-2024-4879)

0x01 产品简介 ServiceNow 是一个业务转型平台。通过平台上的各个模块,ServiceNow 可用于从人力资源和员工管理到自动化工作流程或作为知识库等各种用途。 0x02 漏洞概述 由于ServiceNow的Jelly模板输入验证不严格,导致未经身份验证的远程攻击者可通过构造恶意请求利用,在…

在线图书销售管理系统设计

在线图书销售管理系统的设计是一个涉及多个模块和功能的复杂项目&#xff0c;它旨在提高图书销售的效率&#xff0c;优化库存管理&#xff0c;提升用户体验&#xff0c;以及提供数据分析支持。以下是系统设计的一些关键组成部分&#xff1a; 1. 需求分析 用户需求&#xff1a…

R语言简单介绍及零基础学习路径

R语言介绍 R语言是一种用于统计计算和数据分析的编程语言和软件环境。它最初由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建&#xff0c;如今由R核心开发团队进行维护。 R语言广泛用于学术研究、经济学、金融、统计学、生物信息学和数据科学领域。以下是对R语言的一些详…

[综述笔记]Functional neuroimaging as a catalyst for integrated neuroscience

论文网址&#xff1a;Functional neuroimaging as a catalyst for integrated neuroscience | Nature 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔…

Stable Diffusion 使用

目录 背景 最简单用法 进阶用法 高手用法 safetensor 一、概述 二、主要特点 背景 Stable Diffusion 开源后&#xff0c;确实比较火&#xff0c;上次介绍了下 Stable Diffusion 最简单的concept。今天继续介绍下&#xff0c;以Liblib 为例&#xff0c;介绍下如何使用参…

策略模式适用场景与具体实例解析

策略模式在多种场合下都能发挥其优势&#xff0c;尤其在需要根据不同条件或策略选择不同算法的场景中。下面是几个具体的适用场景及其对应的实例&#xff0c;以帮助进一步理解策略模式的实际应用。 1. 支付方式选择 在电子商务网站中&#xff0c;用户可以选择多种支付方式&am…

807.力扣每日一题7/14 Java(执行用时分布击败100%)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 解题思路 解题过程 时间复杂度 空间复杂度 Code 解题思路 首先…

网络安全策略:优先防护而非溯源的重要性

面对网络攻击&#xff0c;企业往往面临一个关键决策点&#xff1a;是立即投入资源进行攻击溯源&#xff0c;还是优先加强自身的防御体系。尽管溯源分析有助于了解攻击者的手段和动机&#xff0c;但在大多数情况下&#xff0c;优先强化防护是更为明智的选择。本文将探讨为何在遭…

LLM上下文长度扩展方案:YaRN

文章目录 I. 前言II. NTK-by-partsIII. YaRNIV. Dynamic NTK 题目&#xff1a; YaRN: Efficient Context Window Extension of Large Language Models 论文地址&#xff1a; YaRN: Efficient Context Window Extension of Large Language Models I. 前言 在之前的两篇文章中分…

RuoYi-后端管理项目入门篇1

目录 前提准备 下载若依前后端 Gitee 地址 准备环境 后端数据库导入 1 克隆完成 若依后端管理后端 Gitte 地址 :若依/RuoYi-Vue 2.1 创建Data Source数据源 2.2 填写好对应的数据库User 和 Password 点击Apply 2.3 新建一个Schema 2.4 填写对应数据库名称 这边演示写的…

【工具使用】adb下载和配置

【工具使用】adb下载和配置 一&#xff0c;简介二&#xff0c;操作步骤2.1 Bing搜索adb2.2 下载adb工具2.3 添加路径到环境变量 三&#xff0c;效果验证 一&#xff0c;简介 本文主要介绍如何下载adb并安装使用&#xff0c;供参考。 此时打开cmd&#xff0c;输入adb 会提示&am…

计算机网络——网络层(概念及IP地址划分)

目录 网络层概念 网络层向上层提供的两种服务 虚电路 网络提供数据报服务 虚电路服务与数据报服务的对比 网络层的两个层面 分组传送到路由器的运作 对网络层进行分层 网际协议IP 虚拟互联网络 IP地址 IP地址及其表示方法 IP地址的计算方式 IP地址的结构 …

每日一练,java

目录 描述示例 总结 描述 题目来自牛客网 •输入一个字符串&#xff0c;请按长度为8拆分每个输入字符串并进行输出&#xff1b; •长度不是8整数倍的字符串请在后面补数字0&#xff0c;空字符串不处理。 输入描述&#xff1a; 连续输入字符串(每个字符串长度小于等于100) 输…

用Java连接MySQL数据库的总结

✨个人主页&#xff1a; 不漫游-CSDN博客 前言 在日常开发中&#xff0c;使用Java连接MySQL数据库是一个常见的任务&#xff0c;涉及多个步骤。接着我就带着大家细细看来~ 一.下载.jar 包文件 1.什么是.jar 文件 通俗点讲就是一个压缩包&#xff0c;不过里面存放的都是由Java代…

算法热门工程师面试题(一)

BERT模型&#xff1a;请介绍BERT模型的基本原理及其在自然语言处理中的应用 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;模型是一种由Google在2018年提出的预训练语言模型&#xff0c;它在自然语言处理&#xff08;NLP&#xff09;…

Docker基本管理1

Docker 概述 Docker是一个开源的应用容器引擎&#xff0c;基于go语言开发并遵循了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的“虚拟机”。 Docker 的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自…