python模块搜索路径 (sys.path)
導入一個叫 spam 的模塊時,解釋器先在當前目錄中搜索名為 spam.py 的文件,然后在環境變量 PYTHONPATH 表示的目錄列表中搜索,然后是環境變量 PATH 中的路徑列表。如果 PYTHONPATH 沒有設置,或者文件沒有找到,接下來搜索安裝目錄,在UNIX中,通常是 .:/usr/local/lib/python
實際上,模塊從 sys.path 變量給定的目錄列表開始搜索。所以,腳本可以通過sys.path來修改搜索路徑。
另外,自定義的模塊不要同標準模塊同名
實際上,解釋器由 sys.path 變量指定的路徑目錄搜索模塊,該變量初始化時默認包含了輸入腳本(或者當前目錄), PYTHONPATH 和安裝目錄。這樣就允許Python程序了解如何修改或替換模塊搜索目錄。需要注意的是由于這些目錄中包含有搜索路徑中運行的腳本,所以這些腳本不應該和 標準模塊重名,否則在導入模塊時Python會嘗試把這些腳本當作模塊來加載。這通常會引發一個錯誤。
import sys
sys.path.append(‘c:/python’)
import sys, pprint
pprint.pprint(sys.path)
包 是一種組織python模塊的方法。比如 模塊名 A.B 就是在包A里的一個子模塊。
包是目錄,但其中必須包含__init__.py的模塊
Debian現在的python package 都要采用python-central或是python-support 來建立,以符合新的 Python Policy。
python-support
為 Python 模塊提供自動重新構建支持
這個軟件包包含腳本 ‘update-python-modules’,可以將純 Python 語言編寫的模塊編譯為字節碼。
為了不生成強依賴關系,在 Python 主版本號升級時,私有 Python 模塊會自動重新構建。
針對已安裝的多種 Python 版本,公有 Python 模塊將自動生成相應的字節碼。
所以才有 /var/lib/python-support/ , 里面python2.4 python2.5各自有一個目錄,實現多個版本共存于1臺機器
原文地址:
http://weiweiabc109.blog.163.com/blog/static/2835722011111643052261/
總結
以上是生活随笔為你收集整理的python模块搜索路径 (sys.path)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wxpython嵌套panel布局的一个
- 下一篇: 局域网内同时使用两台路由器的配置方法