我试图使用启动后的脚本创建一个顶点AI用户管理的笔记本,其木星实验室有一个专门的虚拟环境和相应的计算内核,当第一次发射。我已经成功地创建了实例,然后,作为第二个手动步骤,从木星实验室>终端运行bash脚本,如下所示:
#!/bin/bash
cd /home/jupyter
mkdir -p env
cd env
python3 -m venv envName --system-site-packages
source envName/bin/activate
envName/bin/python3 -m pip install --upgrade pip
python -m ipykernel install --user --name=envName
pip3 install geemap --user
pip3 install earthengine-api --user
pip3 install ipyleaflet --user
pip3 install folium --user
pip3 install voila --user
pip3 install jupyterlab_widgets
deactivate
jupyter labextension install --no-build @jupyter-widgets/jupyterlab-manager jupyter-leaflet
jupyter lab build --dev-build=False --minimize=False
jupyter labextension enable @jupyter-widgets/jupyterlab-manager但是,我还没有成功地将此代码用作启动后脚本(到目前为止,它是通过控制台创建工具(而不是命令行)提供的)。当我打开木星实验室,看看相关的结构,我发现没有环境或内核。有人能提供一个工作的例子,以实现我的目标,或以其他方式描述一个人将遵循的构建步骤的顺序?
发布于 2022-09-12 07:31:28
启动后脚本作为root运行。当你跑步时:
python -m ipykernel install --user --name=envName笔记本电脑使用的是当前用户,即root,而当您使用终端时,终端以jupyter用户的身份运行。
选项1)有两个脚本:
gs://newsml-us-central1/so73649262.shjupyter的形式执行它。示例:gs://newsml-us-central1/so1.sh,并将其用作启动后脚本.#!/bin/bash
set -x
gsutil cp gs://newsml-us-central1/so73649262.sh /home/jupyter
chown jupyter /home/jupyter/so73649262.sh
chmod a+x /home/jupyter/so73649262.sh
su -c '/home/jupyter/so73649262.sh' jupyter选项2)使用EOF在bash中创建一个文件。将内容写入单个文件并执行上面提到的内容。
发布于 2022-09-13 11:11:14
这是作为@gogasca接受的解决方案的支持上下文发布的。
@gogasca的建议(我使用的是选项1)非常有效,如果您有耐心的话。通过多次尝试,我发现不一致的行为是基于访问时间的。使用选项1,在安装脚本完成之前,用户管理的笔记本似乎可以在顶点AI工作台(绿色检查和可点击的“打开JUPYTERLAB”链接)中使用。
如果您打开笔记本太快,您会发现两件事:(1)提示您进行推荐的木星实验室构建,例如:
Build Recommended
JupyterLab build is suggested:
@jupyter-widgets/jupyterlab-manager changed from file:../extensions/jupyter-widgets-jupyterlab-manager-3.1.1.tgz to file:../extensions/jupyter-widgets-jupyterlab-manager-5.0.3.tgz并且(2)当自定义环境/内核存在并可访问时,如果您尝试使用ipyleaflet或ipywidget工具,您将看到几个JavaScript错误中的一个,这取决于您尝试使用内核的速度,相对于(显然)在后台继续发生的构建:Error displaying widget: model not found和/或带有JavaScript错误的坏页面图标,如果单击这些错误,将显示如下内容:
[Open Browser Console for more detailed log - Double click to close this message]
Failed to load model class 'LeafletMapModel' from module 'jupyter-leaflet'
Error: No version of module jupyter-leaflet is registered
at f.loadClass (https://someURL.notebooks.googleusercontent.com/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/134.bcbea9feb6e7c4da7530.js?v=bcbea9feb6e7c4da7530:1:74856)
at f.loadModelClass (https://someURL.notebooks.googleusercontent.com/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:10729)
at f._make_model (https://someURL.notebooks.googleusercontent.com/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:7517)
at f.new_model (https://someURL.notebooks.googleusercontent.com/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:5137)
at https://someURL.notebooks.googleusercontent.com/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:6385
at Array.map ()
at f._loadFromKernel (https://someURL.notebooks.googleusercontent.com/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:6278)
at async f.restoreWidgets (https://someURL.notebooks.googleusercontent.com/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/134.bcbea9feb6e7c4da7530.js?v=bcbea9feb6e7c4da7530:1:77764)这里的解决办法是继续等待。在我的演示脚本中,我在构建过程结束时传输一个文件。如果我等了足够长的时间,这个文件才能真正出现在实例目录中,那么就没有重新构建的建议,并且扩展可以正常工作。
https://stackoverflow.com/questions/73649262
复制相似问题