我在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虚拟环境中。