无法从conda环境中的jupyter服务器连接到rust内核



我一直在尝试为专用conda环境中的Jupyter服务器安装Rust内核,但我得到错误。


https://depth-first.com/articles/2020/09/21/interactive-rust-in-a-repl-and-jupyter-notebook-with-evcxr/
  1. conda create -n rusttest
  2. conda activate rusttest
  3. conda install -c conda-forge rust jupyterlab
  4. conda install -c anaconda cmake -y
  5. cargo install evcxr_jupyter
  6. 添加$HOME/.cargo/bin到我的PATH变量(导出路径)
  7. evcxr_jupyter --install(这里我已经看到内核安装在环境之外)
  8. jupyter lab

内核在仪表板上是可见的,但是当我尝试用它启动笔记本时,连接失败,我得到:

错误:Failed to find sysroot for Cargo。/tmp/. tmpbz0pkw/Cargo.toml文件。rust-src安装了吗?

我已经手动尝试过了:

jupyter kernelspec install {MY_PATH_DURING_PKG_INSTALLATION}/Jupyter/kernels/rust --sys-prefix

得到:

[InstallKernelSpec] Installed kernelspec rust in {MY_PATH}/miniconda3/envs/rusttest/share/jupyter/kernels/rust

似乎没有问题(在正确的conda环境中),但错误仍然存在。

是否有任何方法可以添加一个工作内核,只是这个环境中的一个jupyter服务器?
(当我从另一个conda环境启动jupyter lab时,我希望Rust消失)

编辑

深入研究后,我认为第一件事是将rust-src安装在conda环境中…我不知道怎么…

已解决:

我需要手动下载https://static.rust-lang.org/dist/2022-05-19/rust-src-1.61.0.tar.gz并将其解压缩到env目录下,以便XXX/miniconda3/envs/rusttest/lib/rustlib/src/rust存在。

我已经像这样安装了rust(安装了rustc和cargo):

conda activate my_env
conda install rust=1.67.1 -c conda-forge

你可以直接安装rust-src(但我还没有尝试过)-但它是一个包https://anaconda.org/conda-forge/rust-src/files:

conda activate my_env
conda install rust-src=1.67.1 -c conda-forge

或者,对@maciek的回答有一个更程序化的理解:

试着按版本查看他们的。toml文件,如http://static.rust-lang.org/dist/channel-rust-1.13.0.toml或http://static.rust-lang.org/dist/channel-rust-1.67.1.toml等,并找到rust-src下载链接(参考:https://github.com/rust-lang/rust-forge/issues/215 # issuecomment - 488328424)

我们也可以通过编程来完成这部分:

brew tap 4rbor/tq && brew install tq
wget http://static.rust-lang.org/dist/channel-rust-1.67.1.toml
RUST_SRC_URL=$(tq -f channel-rust-1.67.1.toml 'pkg.rust-src.target.*.url')

:

cd ~/miniconda/envs/my_env/
wget -c $RUST_SRC_URL -O - | tar -xz
cp -r rust-src-1.67.1/rust-src/lib/rustlib lib

相关内容

  • 没有找到相关文章

最新更新