2015-09-12 63 views
0

我问了一个question关于这个昨天,一些好人帮助我,但我想我只是愚蠢。我在我的Mac上运行Yosemite。我已经用Homebrew安装了python2和python3,并且从Homebrew中获得了pip和pip3。pip安装在优胜美地与自制的

现在我安装NLTK与pip3安装nltk`并能正常工作在Python 3中,但当然不是,在蟒蛇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导入NLTK 2.

过去我没有对pip和pip3有任何问题,我也没有故意改变我的环境。如何才能让import nltk在Python 2中工作?

至于建议,我试图让PIP的版本:

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

所以它看起来像它蟒蛇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' 

的最后一行是真的很奇怪,因为它表明,安装正在没有尝试在我家酿安装了蟒蛇2但是在Mac中附带的python 2中。

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

+0

从命令行尝试'pip -V'来查看您正在使用哪个点。 – Alexander

回答

3

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

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

+0

谢谢。这确实看起来不错,但是当我尝试它时,我得到一个异常。请查看我添加到我的问题的其他信息。 – saulspatz

+0

我仍然没有解决我的问题,但这让我朝着正确的方向前进。我认为我的环境搞砸了。 – saulspatz

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 
+0

谢谢。稍后我会研究这个问题,但目前比我想要做的还要多一点。 – saulspatz

+0

虽然它看起来令人生畏,但实际上它很容易设置。所有的环境都是独立的,所以你不必担心会影响你的系统安装。您也可以根据您的需要轻松创建不同的环境(如上所述)。 – Alexander

+0

我的确有意要尝试它,但我不使用iPython(我一直想要尝试的另一件事情。)它是否仅适用于普通的旧Python Python REPL? – saulspatz

1

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

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

+0

我为大型项目做到了这一点,但我也希望有一个全球环境用于快速和肮脏的脚本。我今天遇到的麻烦表明,也许我应该改变我的方式,但是你知道他们对老狗和新花样所说的话。 – saulspatz

相关问题