1. 程式人生 > >python匯入第三方模組(1)

python匯入第三方模組(1)

【問題】

之前匯入另外一個Python模組,包括自己的模組,都是直接通過 import 模組檔名,即可實現匯入。

後來想要把多個子模組都放到當前資料夾下面的某個子資料夾中,但是卻不知道如何匯入了。

【解決過程】

1.通過類似於

import subFolder/subModule

是無法匯入的,因為不支援這種寫法。

2.後來看到python怎麼import指定資料夾下的模組,才知道,原來可以通過把對應路徑加入到os的path中即可。

3.後來就去將自己的BlogsToWordpress中的眾多部落格的模組py檔案都移至到一個子資料夾libs/blogModules中了:

libs中有:

crifanLib.py
BeautifulSoup.py

libs/blogModules中有:

BlogNetease.py
BlogBaidu.py
BlogSina.py
BlogQQ.py
BlogRenren.py
BlogCsdn.py
BlogSohu.py
BlogBlogbus.py

這樣,對應程式碼本來是:

import os;
import re;
import sys;
import math;
......

import crifanLib;

import BlogNetease;
import BlogBaidu;
import BlogSina;
import BlogQQ;
import BlogRenren;
import BlogCsdn;
import BlogSohu;
import BlogBlogbus;

改為對應的:

import os;
import re;
import sys;

sys.path.append("libs");
sys.path.append("libs/blogModules");

import math;
......
import crifanLib;

import BlogNetease;
import BlogBaidu;
import BlogSina;
import BlogQQ;
import BlogRenren;
import BlogCsdn;
import BlogSohu;
import BlogBlogbus;

就可以實現將各個子模組BlogBaidu,BlogNetease等都正常匯入了。

【總結】

1.如果第三方庫,和當前python指令碼都在同一個資料夾下面,那麼直接通過 import xxx,即可匯入,即可使用第三方庫。

2. 如果第三方庫,在別的路徑下,比如此處在子資料夾下,那麼可以通過將其路徑新增到os.path中方法:

sys.path.append(資料夾路徑);

實現讓python可以找到對應的庫,實現可以匯入並使用第三方庫的目的。

3. 需要注意一點的是,需要自己保證匯入的各個模組之間,以及和系統模組之間,沒有出現重名的模組,就行了。

**************************************

【問答:】在引入模組的時候發生了什麼

  先看一個例子,在檔案test.py中的程式碼:

#test.py

def display():
    print 'hello world'

display()
    

  在test1.py中引入模組test:

#test1.py

import test

  然後執行test1.py,會輸出”hello world”。也就是說在用import引入模組時,會將引入的模組檔案中的程式碼執行一次。但是注意,只在第一次引入時才會執行模組檔案中的程式碼,因為只在第一次引入時進行載入,這樣做很容易理解,不僅可以節約時間還可以節約記憶體。

相關推薦

python匯入第三方模組1

【問題】之前匯入另外一個Python模組,包括自己的模組,都是直接通過 import 模組檔名,即可實現匯入。後來想要把多個子模組都放到當前資料夾下面的某個子資料夾中,但是卻不知道如何匯入了。【解決過程】1.通過類似於import subFolder/subModule是無法匯入的,因為不支援這種寫法。2.後

Python常用模組1

一、 collections 模組 python中的擴充套件資料型別 在內建資料型別(dict、list、set、tuple)的基礎上,collections模組還提供了幾個額外的資料型別:Counter、deque、defaultdict、namedtuple和OrderedDict等。 1.name

Python中的Numpy模組1

1.什麼是Numpy?      Numpy   (Numeric Python)      Numpy系統是Python中的一種開源的數值計算擴充套件。        (1)   一個強大的N維陣列物件Array         (2)   比較成熟的(廣播) 函式

python datetime模組1 時間格式化

python 使用datetime模組對時間進行格式化。 datetime.strptime()函式可以把一個輸入字串解析成一個datetime物件。 datetime.strftime()函式可以

python安裝第三方模組windows環境

在windows中需要給Python安裝seuptolls這個工具才能使用easy_install這個命令,使用easy_install這個命令才能安裝第三方模組。 下面先安裝setuptool: 2.用Python執行ez_setup.py。在命令列中輸入:pytyon

python中的JSON1

welcome 定義 ack () found 存儲 remember nbsp python程序 很多程序都要求用戶輸入某種信息, 例如: 讓用戶存儲遊戲首選項或提供要可視化的數據,程序把用戶的信息存儲在列表和字典等數據結構中, 用戶關閉程序時,我們幾乎總要保存他們提

Python學習手冊筆記1Python對象類型

python 在Python中一切皆對象,Python程序可以分解為模塊、語句、表達式及對象。如下所示:1 程序由模塊組成2 模塊包含語句3 語句包含表達式4 表達式建立並處理對象 內置對象(核心類型):1)數字:>>> 2+2 #整數加法4>>&g

python--DenyHttp項目1--socket編程:客戶端與服務器端

brush accept acc -- highlight 發送消息 src size 接受 查找了許多資料,實現了客戶端與服務器端的連接,通過虛擬機進行測試 服務器端IP:192.168.37.129 端口1122 客戶端IP:  192.168.37.1 端口1122

python--DenyHttp項目1--GUI:tkinter? module 'tkinter' has no attribute 'messagebox'

找到 題解 嘗試 問題解決 erro 解決問題 deny att message AttributeError: module ‘tkinter‘ has no attribute ‘messagebox‘ improt tkinter from tkinter impor

Python叠代器1

iteration 無限 不一定 color pan 函數 style 一個數 blog 叠代對象:可直接用於for循環的對象 叠代器:可被next()函數調用並不斷返回下一個值的對象稱為叠代器 生成器是叠代器,但叠代器不一定是生成器 Python的Iterator對象表示

課後筆記一:Python基礎語法介紹1

Python3.6.5我們總是找借口說還有時間去做某事,或者完成某事,結果總是不了了之。比如拖到現在才寫第一課聽課筆記。 第一節課,老師對以下內容做了分享,大致分為 環境配置 開發平臺:Mac OS Version 10.13.2 老師講課的是在Windows 10 我選擇在Mac OS進行Pyth

python—網絡爬蟲1

lock max styles 更多 64 bit man nsf 理解 網址 安裝 request庫1,運行裏面輸入 CMD 直接輸入 pip install requests回車,即可安裝2,直接在終端輸入python進入python自帶的IDLE3,下面命令即爬取百度

python socket 的理解1

網絡 完成 ron bsp 接收數據 技術分享 檢測 cnblogs 無數據 前言 socket的用法簡單,但裏面的概念有點模糊,記錄自己本人的一點理解。 socket層結構圖 註意,從此圖中看出socket處於tcp和應用層之間。那麽它代表啥意思呢?簡明的說,數

python爬蟲讀書筆記1

1.使用urllib2模組下載URL import urllib2 def download(url): return urllib2.urlopen(url).read() 2.捕獲異常 出現下載錯誤時,該函式能夠捕獲異常,然後返回None。 import urllib2

python呼叫第三方工具命令的方法及區別

一 前言 在上篇《關於os.popen你可能不知道的》中,提到了呼叫第三方工具或命令的os.popen方法,同時也指出了使用中可能遇到的坑。本文就介紹下python提供了哪些方法可以執行第三方工具或命令,以及它們的用法和區別。   二 主要方法 1.  os.system 這

python :collections模組3Counter模組以及deque模組

#Counter模組 統計型別類,定義跟蹤值出現的次數 引數為必須為可迭代物件,如列表,字串,集合 #統計集合中元素出現的次數 from collections import Counter #統計類 users ={"body_1","body_3","bod

Python :正則表示式1

#正則表示式 需要呼叫的模組 : import re #函式引數: patter :需要匹配的正則表示式 string:需要匹配的字串 flags :標誌位,用於控制正則的匹配方式 { re.I :忽略大小寫 var = re.match("www","Www.baidu.com.",

python 小白學習1

自定義錯誤型別 class XxxError(Exception): def __init__(self , message): self = Exception("xxxxx") // Exception.__init__(self) sel

Python之面向物件1

知識框架: 1.面向過程vs面向物件 2.初識面向物件       類的相關知識       物件的相關知識       面向物件相關介紹 3.面向物件的三大特性    

PYTHON 異常的使用1

-廣義上的錯誤分為錯誤和異常 -錯誤指的是可以人為避免的 -異常是指在語法邏輯正確的前提下,出現的問題 -在python中一個是一個類,可以處理和使用 python中異常的分類     BaseException 所有異常的基類    &nbs