【问题标题】:Everytime i run "jupyter notebook", why I always got this on mac os?每次我运行“jupyter notebook”,为什么我总是在mac os上得到这个?
【发布时间】:2018-12-23 04:54:10
【问题描述】:

每次我在我的 mac 操作系统上运行“jupyter notebook”,为什么总是出现这个错误?

案例:

  1. 我有 python2.x 并且我安装了 python3.7(所以,我在这里有两个命令)
  2. 我用 pip 安装了 jupyter
  3. 当我输入 jupyter notebook 命令时,总是出现这些错误

错误:

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/bin/jupyter-notebook", line 11, in <module>
  sys.exit(main())
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/jupyter_core/application.py", line 266, in launch_instance
  return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/traitlets/config/application.py", line 658, in launch_instance
  app.start()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/notebook/notebookapp.py", line 1697, in start
  browser = webbrowser.get(self.browser or None)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/webbrowser.py", line 42, in get
  register_standard_browsers()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/webbrowser.py", line 531, in register_standard_browsers
  raw_result = subprocess.check_output(cmd, stderr=subprocess.DEVNULL)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 376, in check_output
  **kwargs).stdout
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 453, in run
  with Popen(*popenargs, **kwargs) as process:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 756, in __init__
  restore_signals, start_new_session)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/subprocess.py", line 1499, in _execute_child
  raise child_exception_type(errno_num, err_msg, err_filename)
NotADirectoryError: [Errno 20] Not a directory: 'xdg-settings'

【问题讨论】:

  • 您是如何安装 Python 3.7 和 Jupyter 的? xdg-settings 是一个通用桌面组件,即在 OSX 上不可用。
  • @tripleee 我是通过从 python 网站下载安装它的,所以我应该怎么做?我做错了吗?
  • 首先,请edit您的问题更详细地解释您所做的事情。 Jupyter 现在真的在 Python.org 上分发了吗?
  • 看起来这是 jupyter 结合 Python 3.7 的未解决问题,请参阅 issue #3746。建议的解决方法是传递--no-browser 选项,然后在浏览器中手动导航到笔记本。
  • @hoefling 谢谢它用jupyter notebook --no-browser 命令解决了,但我不知道为什么总是这样。每次我在没有 --no-brower 标志的情况下运行 jupyter notebook 时打印这些错误(如果我拼写正确的话)

标签: python python-3.x python-2.7 pip jupyter-notebook


【解决方案1】:

我得到了同样的NotADirectoryError: [Errno 20]。在您的情况下,它指向的文件是'xdg-settings'

似乎'xdg-settings' 文件可能是快捷方式,无法找到实际文件。您可以做的只是删除该文件(仅当它是快捷方式时)。然后重启 jupyter notebook,它应该可以正常工作了。

【讨论】:

    【解决方案2】:

    对于发现此错误的任何人,这是您解决问题的方法 (credit to @rrios-eq on Github):

    这是webbrowser.py 中的 if/else 逻辑错误;一个简单的解决方法是编辑 /usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/lib/python3.7/webbrowser.py (或者 Jupyter 指向你的任何地方)然后寻找 代码中的xdg-settings

    上面的几行(在我的例子中是 15 行),如果你将 sys.platform[:3] == "win": 更改为 elif sys.platform[:3] == "win":,那么 Darwin/Windows/Linux 将正常工作。我正在运行 python3.7 使用 macOS 10.14.2 的自制软件。

    【讨论】:

    • 这就是答案。关键是先找到xdg-settings,因为sys.platform if语句在其他上下文中出现了不止一次。
    【解决方案3】:

    找到文件/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/webbrowser.py,然后找到函数register_standard_browsers,然后找到if sys.platform[:3] == "win":,将其更改为elif sys.platform[:3] == "win":并保存文件,它应该可以工作了。

    【讨论】:

      【解决方案4】:

      来自warp-x:如果您不介意手动打开浏览器,可以在启动笔记本时传递--no-browser$ jupyter notebook --no-browser。 然后,您可以打开浏览器,在浏览器中手动导航到笔记本(通常为 localhost:8888),然后开始工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-14
        • 2013-11-08
        • 1970-01-01
        • 2016-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多