2013-02-24 119 views
17

我是新手,我需要爲我的項目使用pySerial和feedparser模塊。我正在跑獅子山。未找到Python pip安裝模塊。如何將python鏈接到pip位置?

我按照以下教程,以便我可以升級到python 2.7.3,然後使用上述模塊。

http://hackercodex.com/guide/python-virtualenv-on-mac-osx-mountain-lion-10.8/

我跟着這個教程,直到我安裝點子。而不是安裝Virtualenv。我使用以下命令安裝pySerial和feedparser

$ pip install pySerial 
Requirement already satisfied (use --upgrade to upgrade): pySerial in /Library/Python/2.7/site-packages 
Cleaning up... 

我認爲這已經存在並檢查它。 Python似乎正在導入這很好。我的python版本已經升級到2.7.3 btw,因爲我使用教程中提到的自制軟件安裝了它。

然後我試圖安裝feedparser

$ pip install feedparser 
Requirement already satisfied (use --upgrade to upgrade): feedparser in /usr/local/lib/python2.7/site-packages 
Cleaning up... 

通知其在USR/local/lib目錄的site-packages目錄如何。

我所有的pip安裝都安裝在該目錄中,但是當我嘗試導入它們時,python似乎沒有選擇它們。

如何設置路徑,使python也看起來那裏以及核心目錄?

您的幫助將不勝感激。

我試圖尋找答案在這裏: Pip installs but module is not found Why I can't import beautifulsoup on mac using python 2.7 after installing it by using pip and/or easy_install?

但niether都是在同樣的情況,因爲我。我不明白爲什麼會這樣,因爲我通過自制軟件編輯我的.bash_profile具有以下

# Set architecture flags 
export ARCHFLAGS="-arch x86_64" 
# Ensure user-installed binaries take precedence 
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 
# Load .bashrc if it exists 
test -f ~/.bashrc && source ~/.bashrc 

然後安裝自制軟件,然後安裝蟒蛇2.7.3(2.7.3現在目前我的機器上運行)

我覺得所有的pip安裝都會正確關聯?

回答

32

作爲一個快速的解決方法,並假設你是一個bash類似的終端(Linux的/ OSX)上,你可以嘗試將PYTHONPATH環境變量導出:

export PYTHONPATH="${PYTHONPATH}/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages" 

對於Python 2.7

+7

這對我的作品。你能簡單解釋一下嗎? Thx – GilbertLee 2014-07-03 11:32:44

0

你是如何安裝easy_install/pip的?確保你安裝了它的升級版本的Python。這裏可能發生的事情是舊的(默認)python安裝可能與您的pip安裝相關聯。您可能想嘗試運行默認版本並導入新安裝的模塊。

7

我也有這個問題。我注意到/usr/local/lib/python2.7/dist-packages/下的所有子目錄和文件對組和其他組都沒有讀或寫權限,並且它們由root擁有。這意味着,只有root用戶可以訪問他們,讓試圖運行任何使用這些模塊有一個導入錯誤的Python腳本的任何用戶:

$ python 
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import selenium 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named selenium 
>>> 

我授予了對文件和搜索權限讀取權限在子目錄集團等,像這樣:

$ sudo chmod -R go+rX /usr/local/lib/python2.7/dist-packages 

這解決了我的問題:我安裝了這些軟件包與PIP

$ python 
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import selenium 
>>> 

(以root身份運行機智h sudo)。我不確定爲什麼在沒有授予讀/搜索權限的情況下安裝它們。這對我來說似乎是一個小問題,或者可能在包配置中,但我對Python及其模塊打包不是很熟悉,所以我不太確定。 FWIW,dist-packages下的所有軟件包都有這個問題。總之,希望有所幫助。

問候。

4

這裏是我具有PIP問題的很長一段時間,當我有Python的幾個版本安裝後得知(有效尤其是對於可能正在使用BREW安裝Python混合OS X用戶。)

我承擔大多數Python開發者都必須在他們的劇本的開頭:

#!/bin/env python 

你可能會驚訝地發現,這是不一定相同Python作爲你在命令行中運行一個>python

爲了確保您安裝使用正確點子實例爲你的Python解釋器,你需要運行像包:

>/bin/env python -m pip install --upgrade mymodule 
+0

真棒。這解決了我的問題。 – 2016-09-28 10:47:11

+0

我想你的意思是'/ usr/bin/env' for OSX – 2017-01-05 02:07:38

3

沒有其他的解決方案是爲我工作,所以我嘗試:

pip uninstall <module> && pip install <module> 

這爲我解決了。你的旅費可能會改變。

0

對我來說,問題是,我在文件中有奇怪的配置設置pydistutils.cfg

嘗試運行 rm ~/.pydistutils.cfg