2014-01-14 173 views
1

我是一個相對較新的python用戶,我一直在遇到這個(也許很簡單?)的問題,它真的阻礙了我的進步。安裝和導入python軟件包

這是問題所在。無論何時我嘗試使用pip或easy_install安裝軟件包,都會收到錯誤消息,指出我的用戶配置文件無法訪問安裝目錄。不過,我是我電腦的管理員。安裝永遠不會完成使用easy_install(我得到下面的錯誤),但它最終完成使用pip,但我不能導入安裝後的軟件包 - 我得到了通常的「沒有模塊命名[模塊名稱]」錯誤。

Easy_install error message: 
error: can't create or remove files in install directory 

The following error occurred while trying to add or remove files in the 
installation directory: 

    [Errno 13] Permission denied: '/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/test-easy-install-3280.write-test' 

The installation directory you specified (via --install-dir, --prefix, or 
the distutils default setting) was: 

    /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/ 

Perhaps your account does not have write access to this directory? If the 
installation directory is a system-owned directory, you may need to sign in 
as the administrator or "root" account. If you do not have administrative 
access to this machine, you may wish to choose a different installation 
directory, preferably one that is listed in your PYTHONPATH environment 
variable. 

For information on other options, you may wish to consult the 
documentation at: 

    http://packages.python.org/distribute/easy_install.html 

Please make the appropriate changes for your system and try again. 
+0

看起來我的站點包文件夾在python 2.7文件夾中是空的。這是安裝的軟件包應該在哪裏?我試着將模塊的文件夾移動到這個位置,重新啓動python以查看是否有任何效果,但沒有任何效果。 – user2179795

回答

0

你需要使用sudo,因爲你想在全球軟件包的安裝文件夾(/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages /),並且您的用戶顯然沒有該文件夾的寫入權限。

雖然sudo將幫助您超過該限制,請看virtualenv以創建獨立的獨立環境,您可以在其中安裝不重疊的不同包。另外,OS X附帶的Python顯然是一個修改版本,所以你最好安裝一個完整的獨立版本。這樣,如果Apple升級Python版本(或者不需要,並且您需要不同的版本),則不會受到影響。

我發現this article相當不錯的讓我起來,與Python在OS X

+0

'sudo easy_install'通常是個不錯的主意,因爲easy_install不會做任何安全的嘗試。 – geoffspear

+0

謝謝Kristof,我一直按照文章中的說明一步一步的操作,包括將我的操作系統更新到Mavericks,但似乎這個問題剛剛被放大了。每當我嘗試導入包我知道安裝(numpy,scipy,matplotlib)python崩潰。我能夠在ipython中導入這些包,但不能在python中導入。任何想法是怎麼回事? – user2179795

+0

首先,通過運行'which python'來檢查你是否使用了正確的python。另外,看看shebang,看看是否指向正確的python位置。檢查[這](http://stackoverflow.com/questions/20952797/pip-installing-in-global-site-packages-instead-of-virtualenv)問題(和答案)的更多信息。 –

1

一個更簡單的可能性運行,相對於virtualenv中通過鍵入安裝在主目錄軟件包:

easy_install --user <package> 

你的軟件包將被安裝在〜/ .local/lib/python2.7中,它位於python軟件包的默認路徑中。

這與平臺無關。從你的輸出我猜你正在使用Linux。在Windows上,如果您使用標準Python安裝,easy_install總是需要管理員權限。

+0

很好的答案!簡單而簡潔。爲我省了很多頭痛:) – dustinrwh