由pyenv + pipx引起的Jupyter内核问题

问题描述

我在 pyenv 中安装了两个版本的python3.7.5和3.8.6。 我通常使用python3.8.6,因此它是全局激活的(pyenv global 3.8.6)。

我还通过pip install pipxpython3.8.6中安装了 pipx ,以全局安装(pipx install jupyterlab jupyter lab ,该文件位于{{ 1}}。

似乎预装了一个jupyter内核。

~/.local/pipx/venvs/jupyterlab

当我执行$ jupyter kernelspec list Available kernels: python3 ~/.pyenv/versions/3.8.6/share/jupyter/kernels/python3 时,将自动选择此内核。 但是,在 jupyter实验室中,我无法导入安装在python3.8.6中的 numpy

jupyter lab

这可能是由于PATH设置造成的。

[1]: import numpy as np

[1]: ---------------------------------------------------------------------------
     ModuleNotFoundError                       Traceback (most recent call last)
     <ipython-input-1-0aa0b027fcb6> in <module>
     ----> 1 import numpy as np

     ModuleNotFoundError: No module named 'numpy'

[2]: import sys sys.path [2]: ['~/','~/.pyenv/versions/3.8.6/lib/python38.zip','~/.pyenv/versions/3.8.6/lib/python3.8','~/.pyenv/versions/3.8.6/lib/python3.8/lib-dynload','','~/.local/pipx/venvs/jupyterlab/lib/python3.8/site-packages','~/.local/pipx/shared/lib/python3.8/site-packages','~/.local/pipx/venvs/jupyterlab/lib/python3.8/site-packages/IPython/extensions','~/.ipython'] 应该在~/.pyenv/versions/3.8.6/lib/python3.8/site-packages中。为什么不包含此路径?

解决方法

您需要使用 pipx。输入“pipx 注入 jupyterlab numpy scipy matplotlib 等等等等”。 这会将这些模块安装到 jupyterlab 虚拟环境中。