sudo: jupyter: command not found & OSError: [Errno 13] Permission denied: '/ usr / local / share / jupyter '

Если я попытаюсь проверить, находится ли jupyter на моем пути или не используется, я получаю что-то взамен.

which jupyter
/home/usr/.local/bin/jupyter

Но когда я пытаюсь установить и включить расширение, я сталкиваюсь с ошибкой:

sudo jupyter serverextension enable --py ipyparallel
sudo jupyter nbextension install --py ipyparallel
sudo jupyter nbextension enable --py ipyparallel

Ошибка говорит sudo: jupyter: команда не найдена

И мне нужен доступ sudo. Причина выполнения без sudo, работа не выполняется:

jupyter serverextension enable --py ipyparallel
jupyter nbextension install --py ipyparallel 
jupyter nbextension enable --py ipyparallel 
Enabling: ipyparallel.nbextension
- Writing config: /home/usr/.jupyter
    - Validating...
      ipyparallel.nbextension  OK
Installing /home/usr/.local/lib/python2.7/site-packages/ipyparallel/nbextension/static -> ipyparallel
Traceback (most recent call last):
  File "/home/usr/.local/bin/jupyter-nbextension", line 8, in <module>
    sys.exit(main())
  File "/home/usr/.local/lib/python2.7/site-packages/jupyter_core/application.py", line 270, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/home/usr/.local/lib/python2.7/site-packages/traitlets/config/application.py", line 664, in launch_instance
    app.start()
  File "/home/usr/.local/lib/python2.7/site-packages/notebook/nbextensions.py", line 988, in start
    super(NBExtensionApp, self).start()
  File "/home/usr/.local/lib/python2.7/site-packages/jupyter_core/application.py", line 259, in start
    self.subapp.start()
  File "/home/usr/.local/lib/python2.7/site-packages/notebook/nbextensions.py", line 716, in start
    self.install_extensions()
  File "/home/usr/.local/lib/python2.7/site-packages/notebook/nbextensions.py", line 695, in install_extensions
    **kwargs
  File "/home/usr/.local/lib/python2.7/site-packages/notebook/nbextensions.py", line 225, in install_nbextension_python
    destination=dest, logger=logger
  File "/home/usr/.local/lib/python2.7/site-packages/notebook/nbextensions.py", line 126, in install_nbextension
    ensure_dir_exists(nbext)
  File "/home/usr/.local/lib/python2.7/site-packages/jupyter_core/utils/__init__.py", line 13, in ensure_dir_exists
    os.makedirs(path, mode=mode)
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/share/jupyter'
Enabling tree extension ipyparallel/main...
      - Validating: OK

В этом случае (^) ошибка говорит: OSError: [Errno 13] Permission denied: '/ usr / local / share / jupyter'

Итак, как я могу это исправить?

Я добавил export PATH = "$ HOME / .local / bin: $ PATH" в последнюю строку ~ / .bashrc

-1
задан 29 June 2021 в 11:44

1 ответ

Когда вы используете sudo, действует другое окружение. Соответственно, ваша личная папка bin (/home/usr/.local/bin/jupyter) больше не находится в пути поиска, и команда больше не найдена.

Действующий путь определен в файле sudoers. В Ubuntu он выглядит так:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

Таким образом, установите свой бинарник в (/usr/local/bin), чтобы он был найден при запуске через команду sudo. По соглашению, это каталог, предназначенный для установленных вручную исполняемых файлов, т.е. управляемых администратором вручную, а не автоматически дистрибутивом.

В качестве альтернативы, оставьте двоичный файл там, где он есть, и используйте опцию -E команды sudo. Это сохранит ваше текущее окружение, включая путь. Некоторые соображения: 1) операционная система должна позволять это (Ubuntu позволяет), 2) если возможно, лучше не входить в собственную папку пользователя для операций, требующих прав root, и 3) конечно, не запускайте таким образом графические программы, потому что это может нарушить права доступа.

0
ответ дан 28 July 2021 в 11:24

Другие вопросы по тегам:

Похожие вопросы: