用Homebrew在Yosemite上安装

时间:2015-09-12 20:31:23

标签: python homebrew

我昨天问了question这个问题,有些好人帮了我,但我想我只是傻了。我在Mac上运行Yosemite。我已经用Homebrew安装了python2和python3,并且我从Homebrew获得了pip和pip3。

现在我用pip3安装nltk`安装了nltk,它在python 3上工作正常,但当然不是在python 2上。

所以我尝试了pip install nltk,我得到了

pip install nltk
Requirement already satisfied (use --upgrade to upgrade): nltk in /usr/local/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): six>=1.9.0 in /usr/local/lib/python3.4/site-packages (from nltk)

然后我试了

pip install --upgrade nltk
Requirement already up-to-date: nltk in /usr/local/lib/python3.4/site-packages
Requirement already up-to-date: six>=1.9.0 in /usr/local/lib/python3.4/site-packages (from nltk)

当然,我仍然无法在python 2中导入nltk。

过去我对pip和pip3没有任何麻烦,我也没有故意改变我的环境。如何让import nltk在python 2中工作?

根据建议,我尝试获取pip的版本:

pip -V
pip 7.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7) 

所以它看起来像python 2,正如我想的那样。

我也按照建议尝试了pip2,但我得到了一个例外:

pip2 install nltk
Collecting nltk
  Using cached nltk-3.0.5.tar.gz
Collecting six>=1.9.0 (from nltk)
  Using cached six-1.9.0-py2.py3-none-any.whl
Building wheels for collected packages: nltk
  Building wheel for nltk failed: [Errno 13] Permission denied: '/Users/saul/Library/Caches/pip/wheels/f6'
Failed to build nltk
Installing collected packages: six, nltk
  Found existing installation: six 1.8.0
    Uninstalling six-1.8.0:
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/pip/basecommand.py", line 211, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/site-packages/pip/commands/install.py", line 311, in run
    root=options.root_path,
  File "/usr/local/lib/python2.7/site-packages/pip/req/req_set.py", line 640, in install
    requirement.uninstall(auto_confirm=True)
  File "/usr/local/lib/python2.7/site-packages/pip/req/req_install.py", line 716, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/usr/local/lib/python2.7/site-packages/pip/req/req_uninstall.py", line 125, in remove
    renames(path, new_path)
  File "/usr/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 315, in renames
    shutil.move(old, new)
  File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 303, in move
    os.unlink(src)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/six-1.8.0.dist-info/DESCRIPTION.rst'

最后一行真的很奇怪,因为它表明安装不是在我用Homebrew安装的python 2中,而是在Mac附带的python 2中。

你能告诉我什么是错的以及如何纠正它吗?

3 个答案:

答案 0 :(得分:3)

听起来你的系统的默认Python是Python3;这就是pip指向Python 3站点包位置的原因。

要在Python 2上安装nltk,请尝试pip2 install nltk;然后键入python2以启动Python 2。

答案 1 :(得分:1)

另一种解决方案是使用miniconda安装程序并设置单独的环境。

here下载miniconda。快速安装说明为here。摘要如下:

  

OS X Miniconda安装在您的浏览器中下载Miniconda   OS X的安装程序,然后在终端窗口中键入以下内容   并按照安装程序屏幕上的提示进行操作。如果不确定的话   设置,只需接受默认值,因为它们都可以在以后更改。

bash Miniconda3-latest-MacOSX-x86_64.sh
     

现在关闭并重新打开终端窗口以进行更改   效果。

     

要测试您的安装,请输入命令conda list。如果   如果安装正确,您将看到一个包列表   安装。

     

然后要更新所有包,请键入conda update conda

从终端设置环境并包含nltk和ipython包(以及所有依赖项):

$ conda create -n python2_env python=2 nltk ipython pyqt qtconsole
$ conda create -n python3_env python=3 nltk ipython pyqt qtconsole

激活您的环境:

source activate python2_env

然后从活动环境中的终端键入以下内容以启动iPython控制台窗口:

$ ipython qtconsole --pylab=inline

答案 2 :(得分:1)

我强烈建议使用virtualenv而不是将pip安装到系统中。

使用virtualenv,您可以隔离每个项目的环境,并指定您正在运行的Python。