【问题标题】:Fixing Python on Mac在 Mac 上修复 Python
【发布时间】:2016-04-22 19:49:16
【问题描述】:

在 Mac 上正确使用 Python 似乎是一个持续的挑战。我正在使用 Homebrew 实现,现在除了使用 sudo 之外很难运行 Jupyter:

$ which python
/usr/local/bin/python
$ which pip
/Users/username/bin/pip
$ which jupyter
/usr/local/bin/jupyter
$ jupyter notebook
Traceback (most recent call last):
  File "/usr/local/bin/jupyter", line 7, in <module>
    from jupyter_core.command import main
ImportError: No module named jupyter_core.command
$ sudo jupyter notebook
The Jupyter Notebook is running at: http://localhost:8888/

Jupyter 运行后无法导入 pandas(通过pip install pandas 安装):

import pandas
ImportError                               Traceback (most recent call last)
<ipython-input-18-d6ac987968b6> in <module>()
----> 1 import pandas
ImportError: No module named pandas

.. 即使 pandas 可用(python -s 'import pandas' 工作正常)。 root 无法猜测其路径。

我想知道 Jupyter 是 particularly problematic 还是这只是我的设置..?

感谢您的帮助,因为这变得非常烦人。任何关于擦除 python 和从头开始“正确”重新安装的指导都会很方便。


编辑:

$ which virtualenv
/usr/local/bin/virtualenv
21:16 $ virtualenv
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 7, in <module>
    from virtualenv import main
ImportError: No module named virtualenv

【问题讨论】:

    标签: python macos jupyter


    【解决方案1】:

    pipjupyter 的 shebang (#!) 行中是什么 python?您可能已经安装了 jupyter 和使用 /usr/bin/pythonpip。这意味着它不在为 Homebrew 的/usr/local/bin/python 安装的库中。

    您应该可以通过以下方式解决此问题:

    /usr/local/bin/python $(type -p pip) install jupyter
    

    但总的来说,我赞同 @Ray 的建议,即使用 pyenv 来管理一组个人 Python 安装,您可以在这些安装之间进行切换,而与系统上的内容无关。 (我同样对 Ruby 使用 rbenv,对 Perl 使用 perlbrew。)

    【讨论】:

    • 啊,一定是这样。 pip 是 #!/usr/local/opt/python/bin/python2.7,而 jupyter 是 #!/usr/bin/python
    【解决方案2】:

    立即停止在 OSX 上通过本机安装或通过自制程序使用 python!!!

    在您的工具箱中使用这两种技术,您将永远不会再遇到您遇到的问题。

    请注意pyvenvpyenv 是用于实现类似目标(控制/沙盒环境)的两种独立技术,但遗憾的是名称非常相似。需要注意的一件事是,如果您稍微搜索一下,您会看到对virtualenv 的旧引用。这和pyvenv是一回事。

    有人总结了将这些与 Jupyter 一起使用的概述:http://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/

    另一种选择是在虚拟机(比如 virtualbox)或更好的 Docker 容器中做所有事情,但是在你掌握了虚拟环境之后,这完全是另一个乐趣(你在构建你的虚拟环境时会想要它们) docker 图像)。

    【讨论】:

    • 谢谢雷。尝试安装 virtualenv 并在上面遇到错误。有什么想法吗?
    • @geotheory 不要使用 virtualenv 如果你在 python3 中,使用 pyvenv 它做同样的事情。 docs.python.org/3/library/venv.html
    • 这适用于 Mac 上的 Python 2.7 吗? pip install pyvenv 返回Could not find a version that satisfies the requirement pyvenv (from versions: ) No matching distribution found for pyvenv...
    • @geotheory 据我所知,pyvenv 仅适用于 python3,virtualenv 需要用于 python 2.7。在安装pyenv 并选择python2.7 作为运行python 后,您需要使用pip install virtualenv 安装它。
    猜你喜欢
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 2012-10-29
    • 2018-02-10
    • 1970-01-01
    • 2011-06-12
    相关资源
    最近更新 更多