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



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

我还在python3.8.6中通过pip install pipx安装了pipx,以全局安装位于~/.local/pipx/venvs/jupyterlab中的jupyter lab(pipx install jupyterlab(。

似乎有一个预安装的jupyter内核。

$ jupyter kernelspec list
Available kernels:
python3           ~/.pyenv/versions/3.8.6/share/jupyter/kernels/python3

当我执行jupyter lab时,会自动选择这个内核。但是,在jupyter实验室中,我无法导入安装在python3.8.6中的numpy

[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'

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

[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应该在sys.path中。为什么不包括此路径?

您需要使用pipx。类型";pipx注入jupyterlab numpy scipy matplotlib等;这将把这些模块安装到jupyterlab虚拟环境中。

相关内容

  • 没有找到相关文章

最新更新