python import搜索路徑與重新導(dǎo)入

1.import搜索路徑

使用import sys導(dǎo)入,sys.path可以查看當(dāng)前的路徑

In [5]: import sys

In [6]: sys.path
Out[6]: 
['',
 '/usr/bin',
 '/usr/local/lib/python3.5/dist-packages/pygame-1.9.4.dev0-py3.5-linux-x86_64.egg',
 '/usr/lib/python35.zip',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
 '/usr/lib/python3.5/lib-dynload',
 '/home/am/.local/lib/python3.5/site-packages',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages',
 '/usr/lib/python3/dist-packages/IPython/extensions',
 '/home/am/.ipython']

In [7]: 

當(dāng)導(dǎo)入模塊時系統(tǒng)會自動按順序從這些路徑搜索一遍看看是否存在,如果用戶想導(dǎo)入自己的寫的模塊也可以操作的。
可以發(fā)現(xiàn)這個是一個列表,所以支持列表操作,如果想導(dǎo)入當(dāng)前目錄下的模塊,可以使用列表增加元素的操作

sys.path.append('path')

path是你要導(dǎo)入的路徑
例如我導(dǎo)入/Documents/practice

In [8]: sys.path.append('/Documents/practice')

In [9]: sys.path
Out[9]: 
['',
 '/usr/bin',
 '/usr/local/lib/python3.5/dist-packages/pygame-1.9.4.dev0-py3.5-linux-x86_64.egg',
 '/usr/lib/python35.zip',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
 '/usr/lib/python3.5/lib-dynload',
 '/home/am/.local/lib/python3.5/site-packages',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages',
 '/usr/lib/python3/dist-packages/IPython/extensions',
 '/home/am/.ipython',
 '/Documents/practice']

In [10]: 

發(fā)現(xiàn)已經(jīng)導(dǎo)入了(在最后),如果要插入排第一,那么使用列表insert來操作即可

sys.path.insert(0, '/Documents/practice')

2.模塊的從新導(dǎo)入
對于一個模塊被導(dǎo)入后,其模塊被修改后,import module不能重新導(dǎo)入模塊修改的內(nèi)容,要使用reload來重新加載被修改后的功能
測試模塊

def test():
        print('-----1------')

運行結(jié)果

In [14]: test.test()
-----1------

In [15]: 

修改模塊內(nèi)容

def test():
        print('-----2------')

運行

 import test

In [18]: test.test()
-----1------

In [19]: 

發(fā)現(xiàn)沒有顯示修改后的內(nèi)容,使用import test這個不管用,
要使用imp模塊中的reload重新加載test模塊才能更新修改后的內(nèi)容

In [19]: from imp import *

In [20]: reload(test)
Out[20]: <module 'test' from '/home/am/Documents/practice/test.py'>

In [21]: test.test()
-----2------

THEDARKEYES原文鏈接
以下是我的小站:THEDARKEYES
最近在學(xué)習(xí)python,
不斷更新和總結(jié)python的知識,有錯歡迎指導(dǎo)與交流

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 〇、前言 本文共108張圖,流量黨請慎重! 歷時1個半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識的框架詳細梳理了一遍。 ...
    Raxxie閱讀 19,598評論 17 410
  • 一、模塊 1、模塊和導(dǎo)入 當(dāng)程序代碼量變得相當(dāng)大、邏輯結(jié)構(gòu)變得非常復(fù)雜的時候,我們最好把代碼按照邏輯和功能劃分成一...
    常大鵬閱讀 3,273評論 0 9
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • 文/阿唐胞苷 在醫(yī)院的病房中,病友們和家屬之間聊得最多的自然是與病有關(guān)的情況,比如,如何發(fā)現(xiàn)的,當(dāng)時的癥狀是怎樣的...
    學(xué)乃身之寶閱讀 1,401評論 0 3
  • 因為陶維英班長上周的推薦,我正式開始了我的理財之旅。下面就和大家分享下我是如何購買成功的吧。 一、了解自己即將要購...
    采蘑菇的小Timor閱讀 543評論 0 2

友情鏈接更多精彩內(nèi)容