2015-09-12 98 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

相關問題