Скрипт запуска IPython навсегда изменил поведение Jupyter Notbooks - PullRequest
0 голосов
/ 18 апреля 2019

Я следовал руководству по настройке рабочего процесса pyenv, оно включает в себя сценарий запуска IPython, который изменяет PYTHONPATH при использовании Jupyter. Теперь я не хочу использовать 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. Я удалил все следы pyenv, jupyter, ipython и python из / usr / local / bin, / usr / local / lib и / usr / local / share, а также ~ /.

Затем я снова установил python, используя homebrew, и запустил 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 global:

pyenv global 3.6.0 2.7.13 jupyter3 ipython2 tools3 tools2

Проверьте, какой юпитер:

~$ 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, используя Homebrew, и выполняю установку 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'?

1 Ответ

0 голосов
/ 18 апреля 2019

Я закончил тем, что удалил ~ / Library / Jupyter, и это решило проблему.Однако я уверен, что есть менее экстремальный метод решения этой проблемы, если кто-то знает.

...