python模塊是py文件嗎
❶ 如何import python 的.py文件
Python的import包含文件功能就跟PHP的include類似,但更確切的說應該更像是PHP中的require,因為Python里的import只要目標不存在就報錯程序無法往下執行。要包含目錄里的文件,PHP中只需要給對路徑就OK。Python中則不同,下面來看看這個例子。
目錄結構:
a.py 要 import dir目錄下的 b.py 文件。a.py代碼如下:
復制代碼代碼如下:
# coding=utf-8
"import dir 目錄下的 b.py 文件"
import dir.b
print dir.b.name
執行 a.py 報錯
提示找不到這個模塊的名字 dir.b 。通過查找官方文檔,發現要包含目錄下的文件時需要在目錄下聲明一個__init__.py文件,即使這個文件是空的也可以。當然這個文件也可以初始一些數據。
於是在 dir 下新建 __init__.py文件,目錄結構如下:
重新執行a.py,一切OK!
❷ python 能把模塊安裝放在py文件里嗎
importos
try:
importrequests#引入requests
print('requestsok')
except:
print('pip3installrequests')
os.system('pip3installrequests')#引入失敗,開始pip安裝
當然可以,用os.system('pip install xxx')
❸ python怎麼運行py文件
在交互環境中,只能用import導入模塊(也是py文件),但是你寫的py文件一般是不在系統路徑中的,所在要麼你先導入這個路徑:
import sys
sys.path.append("/path/to/your/test.py")
這樣後你可以
import *.py
❹ Python的模塊和庫的區別是哪些
python模塊是:
自我包含並且有組織的代碼片段為模塊。
表現形式為:寫的代碼保存為文件。這個文件就是一個模塊。test.py 其中文件名test為模塊名字。
python包是:
包是一個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執行環境。
通俗一點:包是一個包含__init__.py 文件的目錄,該目錄下一定得有這個__init__.py文件和其它模塊或子包。
python庫是:
參考其它編程語言的說法,就是指python中的完成一定功能的代碼集合,供用戶使用的代碼組合。在python中是包和模塊的形式。
一般按照API的慣例來設計庫。
❺ python中導入py文件為什麼是導入模塊
項目中想使用以前的代碼,或者什麼樣的需求致使你需要導入外部的包
如果是web 下,比如說django ,那麼你新建一個app,把你需要導入的說用東東,都寫到這個app中,然後在setting中的app也配上基本就ok了
如果是本地代碼,可以有幾種方式,
1、這種最簡單,也可能最不實用,將你的外部文件放到跟需要調用外部文件的文件同一個包下,同一目錄
folder
------toinvoke.py
------tobeinvoded.py
這樣在toinvoke.py 中引入
import toveinvoked 或 from tobeinvoked import *
即可
2、你的其他文件不是單個文件,或者不能如上所說放到同一目錄下,而是在不同目錄中,子目錄
folder
------tobeinvodedA.py
------tobeinvodedB.py
------tobeinvodedC.py
toinvoke.py
這種情況,現在folder 下新建一個__init__.py 的空文件,此時的folder不再是一個普通的文件夾,而是一個包 package,現在像這樣
folder #文件夾 現在的性質為一個python包package
------__init__.py
------tobeinvoded.py
------tobeinvodedA.py
------tobeinvodedB.py
------tobeinvodedC.py
toinvoke.py
這樣在toinvoke.py 中引入
import folder.toveinvoked 或 from folder.tobeinvoked import *
即可
3、同理,如果是如下的情況,folderB中的模塊要調用folderA中的模塊,方法同上,有什麼改變,你已經知道了
folderA
------tobeinvoded.py
------tobeinvodedA.py
------tobeinvodedB.py
------tobeinvodedC.py
folderB
--------toinvoke.py
這樣在toinvoke.py 中引入
import folder.toveinvoked 或 from folder.tobeinvoked import *
即可
4、將要被調用的代碼拷貝到$PYTHONHOME$\Lib\site-packages 下面,這個就跟Eclipse插件安裝差不多
5、在$PYTHONHOME$\Lib\site-packages 下面新建一個.pth文件,比如說是MyPackage.pth,裡面的內容是你的包的絕對路徑比如:E:/PythonPrj
那麼,在E:/PythonPrj下的所有包都可以按照包所在的相對路徑引入,這個跟Eclipse插件安裝的link 方式差不多
6、跟上面的差不多,也可以加個環境變數,這個就不多說了
總結、看看Python的包搜索路徑
Python會在以下路徑中搜索它想要尋找的模塊:
1. 程序所在的文件夾
2. 標准庫的安裝路徑
3. 操作系統環境變數PYTHONPATH所包含的路徑
將自定義庫的路徑添加到Python的庫路徑中去,有如下兩種方法:
1. 動態的添加庫路徑。在程序運行過程中修改sys.path的值,添加自己的庫路徑
import sys
sys.path.append(r'your_path')
2. 在Python安裝目錄下的\Lib\site-packages文件夾中建立一個.pth文件,內容為自己寫的庫路徑。示例如下
E:\\work\\Python\\http
E:\\work\\Python\\logging
❻ python模塊的本質是什麼文件
模塊的本質:是一個能實現某種功能的Python文件。
功能模塊是指數據說明、可執行語句等程序元素的集合,它是指單獨命名的可通過名字來訪問的過程、函數、子程序或宏調用。
功能模塊化是將程序劃分成若干個功能模塊,每個功能模塊完成了一個子功能,再把這些功能模塊總起來組成一個整體。以滿足所要求的整個系統的功能。
功能模塊化的根據是,如果一個問題有多個問題組合而成,那麼這個組合問題的復雜程度將大於分別考慮這個問題時的復雜程度之和。
這個結論使得人們樂於利用功能模塊化方法將復雜的問題分解成許多容易解決的局部問題。
功能模塊化方法並不等於無限制地分割軟體,因為隨著功能模塊的增多,雖然開發單個功能模塊的工作量減少了,但是設計功能模塊間介面所需的工作量也將增加,而且會出現意想不到的軟體缺陷。
因此,只有選擇合適的功能模塊數目才會使整個系統的開發成本最小。
功能模塊獨立性是由內聚性和耦合性兩個定性指標來度量的。
內聚性是度量一個功能模塊內功能強度的一個相對指標。耦合性則用來度量功能模塊之間的相互聯系的程度。
❼ python中模塊是什麼
Python模塊是包含Python代碼的文件,此代碼可以是函數類或者變數,Python模塊是包含可執行代碼的.py文件。
❽ python模塊是類嗎
模塊可以理解為就是一個py文件,而類則只是你創建的一個對象而已,一個模塊中可以有多個類
在Python程序中,每個.py文件都可以視為一個模塊,通過在當前.py文件中導入其它.py文件,可以使用被導入文件中定義的內容,例如類、變數、函數等。
Python中的模塊可分為三類,分別是內置模塊、第三方模塊和自定義模塊,相關介紹如下。
(1)內置模塊是Python內置標准庫中的模塊,也是Python的官方模塊,可直接導入程序供開發人員使用。
(2)第三方模塊是由非官方製作發布的、供給大眾使用的Python模塊,在使用之前需要開發人員先自行安裝;
(3)自定義模塊是開發人員在程序編寫的過程中自行編寫的、存放功能性代碼的.py文件。
❾ 什麼是python模塊
python是一門流行的編程語言,模塊化的語言,通過對各個領域的封裝的不同模塊實現不同功能,無論你是做自動化,科學計算,圖像處理,web開發等等,都可以找到python實現的模塊幫你快速完成相關功能,這就是強大的python模塊
❿ 有哪位大神指導下,Python中文件、模塊與包三者之間有什麼區別呀麻煩解釋的詳細點哈,謝謝啦。。。。
Python在處理功能復用和功能顆粒度劃分時採用了類、模塊、包的結構。這種處理跟C++中的類和名字空間類似,但更接近於Java所採用的概念。
類
類的概念在許多語言中出現,很容易理解。它將數據和操作進行封裝,以便將來的復用。
模塊
模塊,在Python可理解為對應於一個文件。在創建了一個腳本文件後,定義了某些函數和變數。你在其他需要這些功能的文件中,導入這模塊,就可重用這些函數和變數。一般用mole_name.fun_name,和mole_name.var_name進行使用。這樣的語義用法使模塊看起來很像類或者名字空間,可將mole_name理解為名字限定符。模塊名就是文件名去掉.py後綴。下面演示了一個簡單的例子:
#moel1.py
def say(word):
print word
#caller.py
import mole1
print __name__
print mole1.__name__
mole1.say('hello')
$ python caller.py
__main__
mole1
hello
例子中演示了從文件中調用模塊的方法。這里還展示了一個有趣的模塊屬性__name__,它的值由Python解釋器設定。如果腳本文件是作為主程序調用,其值就設為__main__,如果是作為模塊被其他文件導入,它的值就是其文件名。這個屬性非常有用,常可用來進行模塊內置測試使用,你會經常在一些地方看到類似於下面的寫法,這些語句只在作為主程序調用時才被執行。
if __name__ == '__main__':
app = wxapp(0)
app.MainLoop()
模塊搜索路徑
上面的例子中,當mole1被導入後,python解釋器就在當前目錄下尋找mole1.py的文件,然後再從環境變數PYTHONPATH尋找,如果這環境變數沒有設定,也不要緊,解釋器還會在安裝預先設定的的一些目錄尋找。這就是在導入下面這些標准模塊,一切美好事情能發生的原因。
import os
import sys
import threading
...
這些搜索目錄可在運行時動態改變,比如將mole1.py不放在當前目錄,而放在一個冷僻的角落裡。這里你就需要通過某種途徑,如sys.path,來告知Python了。sys.path返回的是模塊搜索列表,通過前後的輸出對比和代碼,應能理悟到如何增加新路徑的方法了吧。非常簡單,就是使用list的append()或insert()增加新的目錄。
#mole2.py
import sys
import os
print sys.path
workpath = os.path.dirname(os.path.abspath(sys.argv[0]))
sys.path.insert(0, os.path.join(workpath, 'moles'))
print sys.path
$ python mole2.py
['e:\Project\Python', 'C:\WINDOWS\system32\python25.zip', ...]
['e:\Project\Python\moles', 'e:\Project\Python', 'C:\WINDOWS\system32\python25.zip', ...]
其他的要點
模塊能像包含函數定義一樣,可包含一些可執行語句。這些可執行語句通常用來進行模塊的初始化工作。這些語句只在模塊第一次被導入時被執行。這非常重要,有些人以為這些語句會多次導入多次執行,其實不然。
模塊在被導入執行時,python解釋器為加快程序的啟動速度,會在與模塊文件同一目錄下生成.pyc文件。我們知道python是解釋性的腳本語言,而.pyc是經過編譯後的位元組碼,這一工作會自動完成,而無需程序員手動執行。
包
在創建許許多多模塊後,我們可能希望將某些功能相近的文件組織在同一文件夾下,這里就需要運用包的概念了。包對應於文件夾,使用包的方式跟模塊也類似,唯一需要注意的是,當文件夾當作包使用時,文件夾需要包含__init__.py文件,主要是為了避免將文件夾名當作普通的字元串。__init__.py的內容可以為空,一般用來進行包的某些初始化工作或者設置__all__值,__all__是在from package-name import *這語句使用的,全部導出定義過的模塊。