IPython启动脚本已永久更改Jupyter笔记本的行为

2024-09-28 01:33:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我遵循了一个关于设置pyenv工作流的指南,它包括一个IPython启动脚本,在使用Jupyter时修改PYTHONPATH。现在我不想使用pyenv,但即使在卸载了本指南中的所有内容之后。这种不受欢迎的脚本行为仍然存在

我遵循了这个指南

它有一个独立的虚拟环境供其他虚拟环境使用。它包括一个IPython启动脚本,用于运行virtualenv的站点包并将其加载到Jupyter笔记本环境中

我不想再使用pyenv了。我正在使用MacOSX。我使用自制软件安装了pyenv、pyenv virtualenv、pyenv virtualenvwrapper,因此我删除了所有使用“brew卸载”的软件。我从/usr/local/bin、/usr/local/lib和/usr/local/share以及~/中删除了pyenv、jupyter、ipython和python的任何痕迹

然后,我再次使用自制软件安装python,并运行pip3 install jupyter。我运行了jupyter笔记本,它仍在尝试从这个不存在的位置“/Users/dhemming/.pyenv/versions/jupyter3/bin/python”运行内核

我真的不认为我理解这个脚本或Python路径,我真的希望有人能解释到底发生了什么

在遵循指南时,我做到了:

创建jupyter3虚拟环境(以及其他虚拟环境):

pyenv virtualenv 3.6.0 jupyter3

安装jupyter

pyenv activate jupyter3
pip install jupyter
python -m ipykernel install --user
pyenv deactivate

设置pyenv全局:

pyenv global 3.6.0 2.7.13 jupyter3 ipython2 tools3 tools2

检查哪个jupyter:

~$ pyenv which jupyter
/Users/dhemming/.pyenv/versions/jupyter3/bin/jupyter

安装IPython脚本:

ipython profile create
curl -L http://hbn.link/hb-ipython-startup-script > ~/.ipython/profile_default/startup/00-venv-sitepackages.py

下面是curl命令获取的脚本:

import os
import sys
from warnings import warn


virtualenv = os.environ.get('VIRTUAL_ENV')

if virtualenv:

    version = os.listdir(os.path.join(virtualenv, 'lib'))[0]
    site_packages = os.path.join(virtualenv, 'lib', version, 'site-packages')
    lib_dynload = os.path.join(virtualenv, 'lib', version, 'lib-dynload')

    if not (os.path.exists(site_packages) and os.path.exists(lib_dynload)):
        msg = 'Virtualenv site-packages discovery went wrong for %r' % repr([site_packages, lib_dynload])
        warn(msg)

    sys.path.insert(0, site_packages)
    sys.path.insert(1, lib_dynload)

完成指南后,一切都很顺利,每当我使用pyenv创建新的虚拟环境时,它都会使用jupyter3虚拟环境来运行加载了新虚拟环境库等的笔记本

然后我不再需要这个设置。因此,我删除了python的所有痕迹以及与python相关的任何内容,并使用自制软件安装了一个新的python,并完成了pip3安装jupyter。在那之后,我运行jupyter notebook,我仍然得到以下结果:

Failed to run the command:
    ['/Users/dhemming/.pyenv/versions/jupyter3/bin/python', '-m', 'ipykernel_launcher', '-f', '/Users/dhemming/Library/Jupyter/runtime/kernel-1d721ce4-1619-498d-9f0b-62b98b12d0ac.json']
        PATH='/usr/local/bin:/Users/dhemming/.rbenv/shims:/usr/local/opt/openssl/bin:/Users/dhemming/.nvm/versions/node/v8.11.2/bin:/Users/dhemming/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin'
        with kwargs:
    {'stdin': -1, 'stdout': None, 'stderr': None, 'cwd': '/Users/dhemming/workspace/tmp/tmp_01', 'start_new_session': True}

“/Users/dhemming/.pyenv/versions/jupyter3/bin/python”来自哪里


Tags: path脚本pyenvbinvirtualenvoslibusr

热门问题