我在运行nividia nano的ubuntu上创建了一个虚拟环境gcloudenv。我能够成功安装flask和所需的库,并能够从该虚拟环境将我的appengine部署到GCP中。我所有的工作都在python中进行,并且我使用了nano作为编辑器来启动并运行我的代码。到目前为止没有问题。
我的虚拟环境gcloudenv已经具有flask,jinga等所有必需的软件包,运行pip冻结时可以看到它们。
然后,我尝试在Jupyter笔记本上工作,因为我的代码变得有点复杂,并且我不想编写完整的代码然后运行。
在创建虚拟环境之前,我已经安装了jupyter笔记本。我也在虚拟环境中也安装了jupyter。 因此,我按照说明通过运行以下命令来创建新内核:-
(gcloudenv) sunny@my-nano:~gcloudenv/MyApp/mainfolder$ pip install ipykernel
(gcloudenv) sunny@my-nano:~gcloudenv/MyApp/mainfolder$ ipython kernel install --user --
name=gcloudenv
现在,我将笔记本运行为:
(gcloudenv) sunny@my-nano:~gcloudenv/MyApp/mainfolder$
/home/gcloudenv/bin/jupyter notebook
尝试导入烧瓶时,出现以下错误: ModuleNotFoundError:没有名为“烧瓶”的模块
请注意在我空白时发生了什么。
答案 0 :(得分:0)
添加
!pip install flask
在Jupyter笔记本的开头。
答案 1 :(得分:0)
最后,我设法解决了我的问题。感谢精彩的帖子https://jakevdp.github.io/blog/2017/12/05/installing-python-packages-from-jupyter/。
本质上,我有两个问题: 1.我的虚拟环境中没有Jupyter笔记本。本来我以为我已经安装了它,但这是不正确的。因此,每当我尝试启动一个笔记本时,它都会选择在路径中找到的第一个Jupyter笔记本。 找出它指向哪个命令的好方法是运行哪个命令
(gcloudenv) sunny@my-nano:~/gcloudenv$ which jupyter-notebook
对我来说,那是:
/home/sunny/archiconda3/bin/jupyter-notebook
实际上,我的系统上有3份jupyter-notebook。一个可能是使用sudo pip安装的,因此进入了根文件夹。可能不是一件好事。
因此,我使用以下命令安装了新的jupyter-notebook:-
(gcloudenv) $ pip install jupyter notebook
2。下一步是通过从jupyter笔记本(或从命令行)运行以下命令来检查可用的Jupyter内核列表:
!jupyter kernelspec list (OR (gcloudenv) $jupyter kernelspec list
我的jupyter笔记本无法导入flask库,因为它指向我的virtualenv gcloudenv之外的错误内核配置。
Available kernels:
gcloudenv /home/sunny/.local/share/jupyter/kernels/gcloudenv ( correct one)
python3 /home/sunny/gcloudenv/share/jupyter/kernels/python3
您可以通过在文件上执行“更多”来确定它选择的是哪个python版本:-
(gcloudenv) $
/more/home/sunny/.local/share/jupyter/kernels/gcloudenv/kernel.json
一旦我将内核从笔记本中更改为指向python3,它就会选择正确的路径以及我需要的所有相关库。
总结,当您遇到上述问题时,请执行以下操作:-