我一直在尝试为专用conda环境中的Jupyter服务器安装Rust内核,但我得到错误。
https://depth-first.com/articles/2020/09/21/interactive-rust-in-a-repl-and-jupyter-notebook-with-evcxr/
conda create -n rusttest
conda activate rusttest
conda install -c conda-forge rust jupyterlab
conda install -c anaconda cmake -y
cargo install evcxr_jupyter
- 添加
$HOME/.cargo/bin
到我的PATH变量(导出路径) evcxr_jupyter --install
(这里我已经看到内核安装在环境之外)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