Python探索之修改Python搜索路徑
當(dāng)Python執(zhí)行import語(yǔ)句時(shí),它會(huì)在一些路徑中搜索Python模塊和擴(kuò)展模塊??梢酝ㄟ^(guò)sys.path查看這些路徑,比如:
>>> import sys >>> sys.path ['', '/usr/lib/python2.7/site-packages/demo_nova_hooks-5-py2.7.egg', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages']
其中的空字符串表示當(dāng)前工作目錄。
當(dāng)安裝第三方模塊的時(shí)候,如果不是按照標(biāo)準(zhǔn)方式安裝,則為了能夠引用(import)這些模塊,必須將這些模塊的安裝路徑添加到sys.path中,有以下幾種方法:
1:最簡(jiǎn)單的方法,是在sys.path的某個(gè)目錄下添加路徑配置文件,最常見(jiàn)的就是在…/site-package/目錄下。路徑配置文件的擴(kuò)展名是”.pth”,其中的每一行包含一個(gè)單獨(dú)的路徑,該路徑會(huì)添加到sys.path列表中(已驗(yàn)證)。”.pth”中的路徑既可以是絕對(duì)路徑,也可以是相對(duì)路徑,如果是相對(duì)路徑,則是相對(duì)于包含”.pth”文件的路徑而言的。
2:另一種方法就是在Python標(biāo)準(zhǔn)庫(kù)中修改site.py文件,并編輯sys.path。除非使用了-S開(kāi)關(guān)選項(xiàng),否則site.py在Python解釋器加載時(shí)會(huì)自動(dòng)被引入(執(zhí)行),作用是加載site-packages中的包和模塊到python的sys.path里面。所以,可以編輯site.py,然后加上下面的兩行內(nèi)容即可:
import sys sys.path.append('/xxx/xxxxx/')
3:有兩個(gè)環(huán)境變量可以編輯sys.path。 PYTHONHOME會(huì)改變prefix和exec_prefix的值,默認(rèn)情況下prefix和exec_prefix都是/usr/local。庫(kù)搜索路徑就是prefix/lib/pythonversion 和 exec_prefix/lib/pythonversion。
如果設(shè)置PYTHONHOME為單獨(dú)的路徑,則該路徑會(huì)替換prefix和exec_prefix的值,如果需要prefix和exec_prefix的值不同,則置PYTHONHOME為”prefix:exec_prefix”。比如如果將PYTHONHOME設(shè)置為”/www/python”,則sys.path就會(huì)變?yōu)?br />
['', '/www/python/lib/pythonX.Y/', '/www/python/lib/pythonX.Y/plat-linux2', ...].
注意,修改了PYTHONHOME后,系統(tǒng)可能因找不到site模塊而無(wú)法啟動(dòng)python解釋器,所以,除非特別需求,不要修改該變量。
[root@localhost ~]# python ImportError: No module named site
PYTHONPATH 環(huán)境變量指定的一系列路徑,會(huì)添加到sys.path中。比如如果PYTHONPATH設(shè)置為”/www/python:/opt/py”的話,則sys.path會(huì)以 ['/www/python','/opt/py'].開(kāi)頭。注意這些路徑必須存在,因?yàn)閟ite模塊會(huì)將不存在的路徑刪除。
總結(jié)
關(guān)于Python修改路徑的問(wèn)題,就先介紹到這里,以后如果有什么好的關(guān)于Python的文章,會(huì)第一時(shí)間分享給大家。有什么問(wèn)題可以隨時(shí)留言,歡迎大家交流參考。本站幾篇Python的文章,分享給大家:淺談python中copy和deepcopy中的區(qū)別、python實(shí)現(xiàn)微信接口(itchat)詳細(xì)介紹、基于Python和Scikit-Learn的機(jī)器學(xué)習(xí)探索。
追逐夢(mèng)想的路上,我已然遲到了許多年,現(xiàn)在,該上車(chē)了。。
相關(guān)文章
python高階爬蟲(chóng)實(shí)戰(zhàn)分析
這篇文章給大家分享了python高階爬蟲(chóng)實(shí)戰(zhàn)的相關(guān)實(shí)例內(nèi)容以及技巧分析,有興趣的朋友參考下。2018-07-07Python庫(kù)textract提取各種文檔類型中文本數(shù)據(jù)
Python的textract庫(kù)是一個(gè)強(qiáng)大的工具,它可以從各種文檔類型中提取文本數(shù)據(jù),無(wú)論是PDF、Word文檔、圖片還是其他格式的文件,textract都可以輕松地將文本提取出來(lái),本文將詳細(xì)介紹textract的功能和用法,并提供豐富的示例代碼來(lái)幫助大家深入了解2024-01-01Python實(shí)現(xiàn)號(hào)碼歸屬地查詢功能
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)對(duì)手機(jī)號(hào)碼進(jìn)行地域分析并查詢歸屬地的功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12淺談?dòng)肞ython實(shí)現(xiàn)一個(gè)大數(shù)據(jù)搜索引擎
這篇文章主要介紹了淺談?dòng)肞ython實(shí)現(xiàn)一個(gè)大數(shù)據(jù)搜索引擎,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Python3.6 Schedule模塊定時(shí)任務(wù)(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇Python3.6 Schedule模塊定時(shí)任務(wù)(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Python編寫(xiě)百度貼吧的簡(jiǎn)單爬蟲(chóng)
這篇文章主要介紹了Python編寫(xiě)百度貼吧的簡(jiǎn)單爬蟲(chóng),簡(jiǎn)單實(shí)現(xiàn)了下載對(duì)應(yīng)頁(yè)碼的頁(yè)面并存為以當(dāng)前時(shí)間命名的html文件,這里分享給大家,拋磚引玉。2015-04-04Python深度學(xué)習(xí)pytorch神經(jīng)網(wǎng)絡(luò)匯聚層理解
通常當(dāng)我們處理圖像時(shí),我們希望逐漸降低隱藏表示的空間分辨率,聚集信息,這樣隨著我們?cè)谏窠?jīng)網(wǎng)絡(luò)層疊的上升,每個(gè)神經(jīng)元對(duì)其敏感的感受野(輸入)就越大2021-10-10超詳細(xì)圖解修改pip?install默認(rèn)安裝路徑的方法
windows環(huán)境下Python pip安裝庫(kù)的時(shí)候,默認(rèn)安裝在c盤(pán),下面這篇文章主要給大家介紹了關(guān)于修改pip?install默認(rèn)安裝路徑的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07利用python實(shí)現(xiàn)簡(jiǎn)易版的貪吃蛇游戲(面向python小白)
這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)簡(jiǎn)易版的貪吃蛇游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12