當前位置:首頁 » 編程語言 » python查找模塊

python查找模塊

發布時間: 2023-02-09 06:58:01

A. python如何找到當前模塊名稱

模塊可以通過查看預定義的全局變數__name__找到自己的模塊名稱。如果它的值為'__main__',程序將作為腳本運行。通常,通過導入使用的許多模塊也提供命令行界面或自檢,並且只在檢查__name__之後,才執行之後的代碼:

def main():
print('Running test...')
...

if __name__ == '__main__':
main()

B. python提示找不到os

os 模塊是內置模塊。
打包的話大和 anaconda 應該沒多大關系吧。anaconda 雖不推薦,但這個鍋它不應該背。
我懷疑是你程序裡面自己定義了一個名為 os 變數還是別的。

把程序自己看看清楚。
為什麼我總覺得很奇怪?一個能夠寫到需要打包給別人用的程度的人卻不知道 os 是內置模塊???這個程序莫不是不是你自己寫的吧?

C. python 模塊的路徑搜索方法

導入一個叫 spam 的模塊時,解釋器先在當前目錄中搜索名為 spam.py 的文件。如果沒有找到的話,接著會到 sys.path 變數中給出的目錄列表中查找。 sys.path 變數的初始值來自如下:
輸入腳本的目錄(當前目錄)。
環境變數 PYTHONPATH 表示的目錄列表中搜索
(這和 shell 變數 PATH 具有一樣的語法,即一系列目錄名的列表)。
Python 默認安裝路徑中搜索。
Note
在支持符號鏈接的文件系統中,輸入的腳本所在的目錄是符號鏈接指向的目錄。 換句話說也就是包含符號鏈接的目錄不會被加到目錄搜索路徑中。
實際上,解釋器由 sys.path 變數指定的路徑目錄搜索模塊,該變數初始化時默認包含了輸入腳本(或者當前目錄), PYTHONPATH 和安裝目錄。這樣就允許 Python 程序了解如何修改或替換模塊搜索目錄。需要注意的是由於這些目錄中包含有搜索路徑中運行的腳本,所以這些腳本不應該和標准模塊重名,否則在導入模塊時 Python 會嘗試把這些腳本當作模塊來載入。這通常會引發錯誤。

D. Python找不到自定義的模塊

Python導入模塊時實際上是在 sys.path 中進行查找的。
一般會包括標准庫、第三方庫、當前文件目錄。
6. 模塊 — Python 3.10.5 文檔

有時候我們定義的模塊不在這裡面,可以手動 append 到 sys.path 。

相對路徑:在Python中可以用 . 表示當前目錄, .. 表示當前文件的上一級目錄。這個相對路徑實際上是相對 執行python xx.py命令時候 所在的目錄。

E. 如何查看Python未下載的模塊

在終端里輸入pip list可以查看你的機子上已經安裝的python模塊和版本。那麼你機子上沒有列出的模塊就是未下載未安裝的模塊了

F. 那些Python中的模塊

Python的解釋環境是很好用,但是如果我們需要編寫一個大型的程序的時候,解釋環境就完全不夠用了。這個時候我們需要將python程序保存在一個文件里。通常這個文件是以.py結尾的。

對於大型的應用程序來說,一個文件可能是不夠的,這個時候我們需要在文件中引用其他的文件,這樣文件就叫做模塊。

模塊是一個包含Python定義和語句的文件。文件名就是模塊名後跟文件後綴 .py 。在模塊內部,模塊名可以通過全局變數 __name__ 獲得。

還是之前的斐波拉赫數列的例子,我們在fibo.py文件中存放了函數的實現:

編寫完畢之後,我們可以在Python的解釋環境中導入它:

然後直接使用即可:

常用的函數,我們可以將其賦值給一個變數:

或者,我們在導入的時候,直接給這個模塊起個名字:

或者導入模塊中的函數:

每個模塊都有它自己的私有符號表,該表用作模塊中定義的所有函數的全局符號表。因此,模塊的作者可以在模塊內使用全局變數,而不必擔心與用戶的全局變數發生意外沖突。

前面我們提到了可以使用import來導入一個模塊,並且 __name__ 中保存的是模塊的名字。

java中的main方法一樣,如果我們想要在模塊中進行一些測試工作,有沒有類似java中main方法的寫法呢?

先看一個例子:

在模塊中,我們需要進行一個判斷 __name__ 是不是被賦值為 "__main__"。

我們這樣來執行這個模塊:

以腳本執行的情況下,模塊的 __name__ 屬性會被賦值為 __main__ , 這也是例子中為什麼要這樣寫的原因。

看下執行效果:

如果是以模塊導入的話,那麼將不會被執行:

使用import導入模塊的時候,解釋器首先會去找該名字的內置模塊,如果沒找到的話,解釋器會從 sys.path變數給出的目錄列表裡尋找。

sys.path的初始目錄包括:

要想查看模塊中定義的內容,可以使用dir函數。

上面的例子列出了當前模塊中定義的內容,包括變數,模塊,函數等。

我們可以給dir加上參數,來獲取特定模塊的內容:

java中有package的概念,用來隔離程序代碼。同樣的在Python中也有包。

我們看一個Python中包的例子:

上面我們定義了4個包,分別是sound,sound.formats, sound.effects, sound.filters。

__init__.py 可以是一個空文件,也可以執行包的初始化代碼或設置 __all__ 變數。

當導入的時候, python就會在 sys.path 路徑中搜索該包。

包的導入有很多種方式,我們可以導入單個模塊:

但是這樣導入之後,使用的時候必須載入全名:

如果不想載入全名,可以這樣導入:

那麼就可以這樣使用了:

還可以直接導入模塊中的方法:

然後這樣使用:

如果一個包裡面的子包比較多,我們可能會希望使用 * 來一次性導入:

那麼如何去控制到底會導入effects的哪一個子包呢?

我們可以在 __init__.py 中定義一個名叫 __all__ 的列表,在這個列表中列出將要導出的子包名,如下所示:

這樣from sound.effects import * 將導入 sound 包的三個命名子模塊。

如果沒有定義 __all__,from sound.effects import * 語句 不會 從包 sound.effects 中導入所有子模塊到當前命名空間;它只會導入包 sound.effects。

Import 可以指定相對路徑,我們使用 . 來表示當前包, 使用 .. 來表示父包。

如下所示:



G. 如何找出python中已經安裝好的模塊

  • 首先我們想找到python的安裝位置,一般在開始中就可以查詢到

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:578
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:872
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:567
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:752
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:669
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:996
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:240
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:99
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:791
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:697