在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'
工作正常)。猜测它的路径是不可用的。
我想知道Jupyter是particularly problematic还是这只是我的设置..?
感谢帮助,因为这变得非常烦人。有关擦除python和重新安装&#39;正确&#39;的任何指导从头开始会很方便。
编辑:
$ 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
答案 0 :(得分:1)
现在停止在OSX上通过本机安装使用python,或者立即通过自制程序使用!
pyenv
来控制正在使用的python版本。 Pyenv允许你随时安全地在你想要的任何版本的python之间切换,而不会弄乱本机安装的python(系统可能需要):https://amaral.northwestern.edu/resources/guides/pyenv-tutorial pyvenv
)来沙箱化项目。虚拟环境允许您通过pip安装不同的库集,并根据需要提供这些库:https://robinwinslow.uk/2013/12/26/python-3-4-virtual-environment/ 在您的工具箱中使用这两项技术,您将永远不会遇到您遇到的问题。
请注意pyvenv
和pyenv
是两种单独的技术,用于实现类似目标(控制/沙箱环境),但遗憾的是名称相似。有一点需要注意的是,如果你稍微谷歌,你会看到virtualenv
的旧引用。这与pyvenv
相同。
有人对Jupyter使用这些内容进行了很好的概述:http://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/。
另一个选择是在虚拟机(比如说虚拟机)或者更好的Docker容器中做所有事情,但是在你掌握虚拟环境之后,最好留下一个有趣的球(你在构建你的时候会想要它们)无论如何,码头图像。)
答案 1 :(得分:1)
#!
和pip
上的shebang(jupyter
)行中有什么python?您可能已安装了使用jupyter
pip
/usr/bin/python
的{{1}}。这意味着在为Homebrew /usr/local/bin/python
安装的库中没有它。
您应该可以通过以下方式解决此问题:
/usr/local/bin/python $(type -p pip) install jupyter
但总的来说,我的第二个@Ray建议使用pyenv
来管理您可以在其间切换的个人Python安装集,而不管系统上的内容是什么。 (我同样使用rbenv
表示Ruby,perlbrew
表示Perl。)