2016-12-05 41 views
1

我還是很新的蟒蛇所以請原諒我,如果這是非常簡單或極思考這個錯誤的方式。導演的Python在另一個文件夾查找模塊

我有Python 2.7版安裝。從我所瞭解的當我運行下面的代碼時,它列出了它尋找模塊的目錄。

Python 2.7.12 (default, Oct 11 2016, 14:42:58) 
[GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> print '\n'.join(sys.path) 

/usr/local/lib/python2.7/site-packages 
/usr/lib/python2.7/site-packages 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/readline 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload 
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 

我有另一個目錄,似乎有一堆我安裝在它的python模塊。 「/Library/Python/2.7/site-packages」

我想我需要做兩件事情之一:

(1)直接蟒蛇在這額外的文件夾中查找模塊。 我該怎麼做?

(2)在它已經被引導到的文件夾中的一個安裝模塊。我一直在使用pip來安裝模塊,我認爲pip正在安裝到這個額外的導演。 如何檢查pip是否安裝到此文件夾?如何更改pip安裝軟件包的位置?

謝謝!

+0

一個簡單的解決方法就是將代碼附加到代碼中的'sys.path'中,例如'sys.path.append( '/庫/ Python的/ 2.7 /站點包')'。這應該在依賴這個目錄的'import'之前完成。 –

+0

查看安裝有pip的任何給定庫的位置,使用pip show命令:'C:\ Users \ ...> pip show numpy'尋找線路位置:' – Aaron

+0

感謝,@ jmd_dk,這對我很有用!謝謝。任何方式來告訴它永久引用這個目錄,而不是必須把我的代碼? – user1500158

回答

3

這東西是site.py設置。你可以通過輸入解釋找出site.py

python -v 

另外,進口site在交互式解釋和檢查site.__file__屬性。

還有在site.py一個有用的腳本,你可以用

python -m site 

運行要在輸出看到什麼有你的用戶的網站,像

USER_BASE: '/home/<your_username>/.local' (exists) 
USER_SITE: '/home/<your_username>/.local/lib/python2.7/site-packages' (exists) 
ENABLE_USER_SITE: True 

當你pip install一個包,使用pip install --user,它會將模塊安裝到您的用戶空間。 請勿使用sudo pip install安裝東西。不要像jmd_dk中的「快速修復」那樣手動敲入sys.path正確地做。

如果在閱讀的site documentationPEP370,你仍然有問題正確設置用戶現場後,則是可以接受的增加這樣一行在您的bash配置文件:

export PYTHONPATH=/home/<your_username>/.local/lib/python2.7/site-packages 

如果您同時安裝Python 3和Python 2,請注意兩個解釋器都會看到PYTHONPATH環境變量。在這種情況下,強烈建議爲每個解釋器(或使用虛擬環境)分別啓用site.USER_SITE以提供足夠的已安裝軟件包的名稱空間。

+0

感謝您的信息。我不知道在代碼行的前面添加sudo「將模塊放在錯誤的地方」。我是否正確思考這個問題? – user1500158

+0

是的,你正在錯誤地思考它。您應該使用您的用戶帳戶安裝python模塊,而不是使用root帳戶。 「jmd_dk」評論是有害的,如果我是主持人,我會刪除它。 – wim

+0

感謝您的澄清! – user1500158

相關問題