我使用
pipenv
将我的数据科学项目隔离到虚拟环境中。但是,运行 Jupyter Notebook 不会访问本地环境,而是使用默认的 IPyKernel。我已经看到您可以从环境中注册虚拟环境,但这需要安装ipykernel
包,它本身需要Jupyter!
是否有办法避免这种情况,并为所有虚拟环境使用单个 Jupyter 安装?
通常,您只需安装一次 jupyter,然后在虚拟环境中执行以下操作:
pip install ipykernel
python -m ipykernel install --user
当您运行多个 Python 版本时,这还不够。
这里有一个指南试图解决这个问题:
https://medium.com/@henriquebastos/the-definitive-guide-to-setup-my-python-workspace-628d68552e14
它不是 100% 故障安全,但它可以帮助您避免一直重新安装 Jupyter Notebook。
我发现分别为每个环境重新安装jupyter时几乎没有问题:即在新环境中
pip install jupyter jupyterlab
。
我遇到了多个问题(使用和不使用 Conda),当您在单元格中使用
!pip install a_package_name
时,Jupyter 会将包安装到不同的 python 环境。 shell 环境仍然跟踪非环境 python,你可以通过比较 !which python
和 的输出来判断这一点
import sys
sys.executable
因此,当您尝试导入该包时,它将不可用,因为单元使用环境 python/ kernel (因为它检测到
venv
目录)。
是的,每个环境都必须有
ipykernel
和 jupyter
。有一个方便的包,https://github.com/anaconda/nb_conda_kernels,允许从基础环境调用jupyter notebook
或jupyter lab
,并可以访问其他环境中的其他内核。