Python打包並引用

2021-07-31 18:11:12 字數 2102 閱讀 1023

最近在看caffe

的python

介面部分的內容,學習關於

python

打包的方法

和原理,然後通過乙個例子來清晰地介紹一下怎麼import

乙個自己打的

python包:

包是乙個分層次的檔案目錄結構,它定義了乙個由模組及子包,和子包下的子包等組成的 python的應用環境。簡單來說,包就是資料夾,但該資料夾下必須存在

__init__.py檔案,

該檔案的內容可以為空。

__int__.py

用於標識當前資料夾是乙個包。

給出乙個在package_test目錄下的

test1.py

、test_2.py

、__init__.py

檔案,test.py

為測試呼叫包的**,目錄結構如下:

test1.py的源**如下:

#!/usr/bin/python

# -*- coding: utf-8 -*-

def test1():

print "i am in test1"

test2.py的源**如下:

#!/usr/bin/python

# -*- coding; utf-8 -*-

def test2():

print "i am in test2"

__init__.py的源**如下:

# -*- coding: utf-8 -*-

from .test1 import test1

#從當前檔案引入test1模組的test1函式

from .test2 import test2

if __name__=='__main__':

print 'as the main program'

else:

print 'package_test initialization'

定義了包package以後,就可以在

test.py

測試程式裡面進行相應的呼叫了。

test.py源**如下:

#!usr/bin/python

# -*- coding: utf-8 -*-

python_root='/home/zf/'

import sys

sys.path.insert(0,python_root + 'example')

#引入包含test1.py、test_2.py、__init__.py,package_test的example包

import package_test

#引入定義的package_test包

package_test.test1()

package_test.test2()

#用package_test名呼叫test1.py和test2.py裡面定義的函式

同樣,如果沒有在__init__.py裡面包含

from .test1 import test1

和from .test2 import test2

,那同樣可以採用另外乙個方法,就是直接在

test.py

裡面引入

test1.py

和test2.py

裡面定義的函式。

可以修改test.py如下:

#!usr/bin/python  

# -*- coding: utf-8 -*-

#直接引入定義的package_test裡面檔案定義的函式

from package_test.test1 import test1

from package_test.test2 import test2

test1()

test2()

輸出的結果如下所示:

$python test.py

Docker打包並執行python專案

整體分為三步,首先配置dockerfile檔案,其次編譯dockerfile檔案,生成docker映象,最後執行。1.配置dockerfile 檔案 kafkapro為專案根目錄,將其打包成docker映象。專案結構截圖如下。相關dockerfile配置 如下。注意 如下 是將kafkapro資料夾...

python專案打包成docker映象並發布執行

本文以django專案為例,演示docker映象的製作過程。一.目錄結構 base img dockerfile django專案映象的dockerfile opapi django專案 vscode logs middleware python agency manage.py requireme...

debian修改python原始碼並打包deb

目的 修改python直譯器用於 加密 獲取原始碼apt source python2.7 minimal 編譯python會有很多test,非常耗時,因此嘗試跳過test步驟,網上未找到合適的解決方案,看到debian rules有一些run tests,嘗試登出所有run tests,如下 cd...