Python中在指令碼中引用其他檔案函式的方法

2022-09-15 04:51:12 字數 1308 閱讀 1489

在匯入檔案的時候,python只搜尋當前指令碼所在的目錄,載入(entry-point)入口指令碼執行目錄和sys.path中包含的路徑例如包的安裝位址。所以如果要在當前指令碼引用其他檔案,除了將檔案放在和指令碼同一目錄下,還有以下幾種方法,

import sys

import file

a).init.py檔案的作用

該檔案的主要作用使初始化python包。如果目錄下面包含了該檔案,python直譯器就會將該目錄當做乙個包,下一步就可以使用import語句在別的.py指令碼中引用該目錄下的檔案。乙個標準python模組的結構如下所示:

package/

__init__.py

file.py

file2.py

subpackage/

__init__.py

submodule1.py

submodule2.py

b).init__檔案可以為空但可以用來建立對包的需求。一般來說會在該檔案中寫那些類,函式等需要被匯入到包水平,從而可以被方便的引用。比如:如果file.py檔案中有乙個file類,在__init.py檔案中啥都沒寫時引用file類需要這樣操作:

from package.file import file
如果在__init__.py檔案中將file匯入包,那就在包水平可以直接引用file類:

# in your __init__.py

from file import file

# in your script

from package import file

此外,還需要注意的一點是__init__.py檔案中的all變數。如果直譯器在__init__.py檔案中觀察到了__all__變數,那麼在執行from package import *時就只會引入__all__變數中列出的那些模組。例如:如果想在上述結構的只引入submodule1模組,那麼可以在subpackage/__init__.py檔案中定義__all__ = ['submodule1'],當引用subpackage時from subpackage import *就只引入了submodule1模組。

export pythonpath=$home/pathtoyourscripts/:$pythonpath

Python中在指令碼中引用其他檔案函式的方法

在匯入檔案的時候,python只搜尋當前指令碼所在的目錄,載入 entry point 入口指令碼執行目錄和sys.path中包含的路徑例如包的安裝位址。所以如果要在當前指令碼引用其他檔案,除了將檔案放在和指令碼同一目錄下,還有以下幾種方法,import sys import filea init ...

python指令碼環境 在python指令碼中更改環境

我有乙個關於python和linux環境變數的問題。我在這裡讀了很多問題 答案,但沒有乙個是我的。接下來是 在install and create virtualenv easy install prefix opt mypython pip bashrc module unload python ...

shell指令碼中呼叫其他指令碼

目前來說有三種方法 1.指令碼絕對路徑 這個方式是最普通的,底層呼叫的是fork實現,執行的時候開乙個子shell執行呼叫的指令碼,子shell執行的時候,父shell還在 子shell執行完畢後返回父shell,子shell從父shell繼承環境變數,但是子shell中的環境變數不會帶回父shel...