Python深入 修改Python搜尋路徑

2022-07-03 13:00:11 字數 1738 閱讀 8242

當python執行import語句時,它會在一些路徑中搜尋python模組和擴充套件模組。可以通過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']

其中的空字串表示當前工作目錄。

當安裝第三方模組的時候,如果不是按照標準方式安裝,則為了能夠引用(import)這些模組,必須將這些模組的安裝路徑新增到sys.path中,有以下幾種方法:

1:最簡單的方法,是在sys.path的某個目錄下新增路徑配置檔案,最常見的就是在…/site-package/目錄下。路徑配置檔案的副檔名是」.pth」,其中的每一行包含乙個單獨的路徑,該路徑會新增到sys.path列表中(已驗證)。」.pth」中的路徑既可以是絕對路徑,也可以是相對路徑,如果是相對路徑,則是相對於包含」.pth」檔案的路徑而言的。

2:另一種方法就是在python標準庫中修改site.py檔案,並編輯sys.path。除非使用了-s開關選項,否則site.py在python直譯器載入時會自動被引入(執行),作用是載入site-packages中的包和模組到python的sys.path裡面。所以,可以編輯site.py,然後加上下面的兩行內容即可:

import sys

3:有兩個環境變數可以編輯sys.path。  pythonhome會改變prefix和exec_prefix的值,預設情況下prefix和exec_prefix都是/usr/local。庫搜尋路徑就是prefix/lib/pythonversion 和 exec_prefix/lib/pythonversion。

如果設定pythonhome為單獨的路徑,則該路徑會替換prefix和exec_prefix的值,如果需要prefix和exec_prefix的值不同,則置pythonhome為」prefix:exec_prefix」。比如如果將pythonhome設定為」/www/python」,則sys.path就會變為

['', '/www/python/lib/pythonx.y/', '/www/python/lib/pythonx.y/plat-linux2', ...].

注意,修改了pythonhome後,系統可能因找不到site模組而無法啟動python直譯器,所以,除非特別需求,不要修改該變數。

[root@localhost ~]# python

importerror: no module named site

pythonpath

環境變數指定的一系列路徑,會新增到sys.path中。比如如果pythonpath

設定為」/www/python:/opt/py」的話,則sys.path會以 ['/www/python','/opt/py'].開頭。注意這些路徑必須存在,因為site模組會將不存在的路徑刪除。

python codec 深入理解Python特性

第1章 簡介 1 1.1 什麼是python技巧 1 1.2 本書作用 2 1.3 如何閱讀本書 2 第2章 python整潔之道 4 2.1 用斷言加一層保險 4 2.1.1 示例 python中的斷言 4 2.1.2 為什麼不用普通的異常來處理 6 2.1.4 常見陷阱 6 2.1.5 pyth...

python元程式設計運用 深入淺出Python元程式設計

python 官方教程 的開頭是這樣寫的 python 是一門既容易上手又強大的程式語言。這句話本身並無大礙,但需要注意的是,正因為它既好學又好用,所以很多python程式設計師只用到了其強大功能的一小部分。只需要幾個小時,經驗豐富的程式設計師就能學會用 python 寫出實用的程式。然而隨著這最初...

Python學習筆記 1 1 2 認識Python

一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...