最近在看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...