我遵循了有关设置pyenv工作流程的指南,其中包括一个IPython启动脚本,该脚本在使用Jupyter时会修改PYTHONPATH。现在,我不想使用pyenv,但即使在卸载了本指南中的所有内容之后也是如此。这种不良的脚本行为仍然存在。
我遵循了本指南https://medium.com/@henriquebastos/the-definitive-guide-to-setup-my-python-workspace-628d68552e14。
它为Jupyter提供了一个单独的虚拟环境,其他虚拟环境使用该虚拟环境。它包含一个IPython启动脚本,该脚本可运行并将virtualenv的站点程序包加载到Jupyter Notebook环境中。
我不再想要使用pyenv。我正在使用MacOSX。我使用Homebrew来安装pyenv,pyenv-virtualenv,pyenv-virtualenvwrapper,因此我删除了所有使用“ brew uninstall”的程序。我从/ 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相关的任何东西,并使用Homebrew安装了新的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”来自哪里?
答案 0 :(得分:0)
我最终删除了〜/ Library / Jupyter,从而解决了该问题。但是,我敢肯定,如果有人知道,可以使用一种不太极端的方法来解决此问题。