Excel与VBA的交互,受个人电脑环境影响很大,经常不能正常运行。考虑python更为通用,但谷歌colab国内不方便访问,国内的其他平台又有各种网络限制,考虑利用手头的vps搭建Jupyterhub,便于在外网环境下学习python、快速安装依赖,未来也便于程序工具的传播分发。安装踩坑记录如下:
- 失败:宝塔面板软件商城搜索Jupyterhub,一键安装,顺利访问并配置域名,但python版本过低(3.6),尝试安装【沉浸式翻译】推荐的ocr识别Nougat失败。
- 失败:Jupyterhub TLJH版本 , 此处为官方的安装命令,哔哩哔哩上有教程可参考。
- 部分成功:按知乎的这篇文章《docker 搭建 python教学环境 jupyterhub + nbgrader 教程 – 知乎 (zhihu.com)》部署,很快成功,可通过ip+8000端口进行访问。(在这之前尝试了,但未成功,无法访问),python版本3.10.12
- 完全成功:因为之前未配置ssl的ip被封锁过几次,所以考虑给访问ip配置域名和ssl证书。但登录发现代码无法运行,在chatgpt提示下对宝塔Nginx进行了配置修改,最终可以通过域名进行访问。
操作记录及复现(在已经安装了宝塔面板的Ubuntu系统下):
安装jupyterhub
# 安装jupyterhub
## 拉取docker 镜像
docker pull jupyterhub/jupyterhub
## 使用 docker 启动 JupyterHub
docker run -d -p 8000:8000 -v /srv:/srv -v /jupyterhub:/home --name jupyterhub jupyterhub/jupyterhub jupyterhub
## 进入docker容器中
## 查看容器ID
docker ps
## 进入容器命令行
docker exec -it 容器ID /bin/bash
## 输入以下命令,否则进入jupyterhub会出现错误
## 最好执行一下这个命令 apt-get update 以便于后续安装各种linux系统软件
pip install jupyterhub --upgrade
pip install notebook --upgrade
## 添加用户,输入密码,用户名和密码就是登陆jupyterhub 的用户名和密码
adduser admin
## 此时访问服务器8000端口即可访问jupyterhub,使用创建好的用户名和密码等即可
配置域名及SSL加密
Chatgpt提示操作,相对复杂,还没搞明白
配置登录用户所需要的虚拟环境
首先在vps和docker上安装python3.10-venv
# 在vps上配置
sudo apt install python3.10-venv
#在docker上配置,先找到容器ID,进入容器后配置
docker ps
docker exec -it [容器ID] bash
apt update
apt install python3.10-venv
#重启 Docker 容器,在用户登录JupyterHub后,在notebook中配置
## 1 创建虚拟环境
import sys
!{sys.executable} -m venv myenv
## 2 输出当前的工作目录
import os
print(os.getcwd())
## 3 用获得的工作目录替代venv path(删除线部分)
import os
import sys
# 使用您的虚拟环境实际路径
venv_path = "/home/user/projects/myenv"
# 更新环境变量
os.environ['VIRTUAL_ENV'] = venv_path
os.environ['PATH'] = venv_path + "/bin:" + os.environ['PATH']
sys.path.insert(0, venv_path + '/lib/python3.x/site-packages')
# 安装软件