編譯python介面,Python做介面

本文目錄一覽:

Python中怎麼寫介面啊,我在網上一直找不到

什麼是介面 ?

介面只是定義了一些方法,而沒有去實現,多用於程序設計時,只是設計需要有什麼樣的功能,但是並沒有實現任何功能,這些功能需要被另一個類(B)繼承後,由 類B去實現其中的某個功能或全部功能。

個人的理解,多用於協作開發時,有不同的人在不同的類中實現介面中的各個方法。

在python中介面由抽象類和抽象方法去實現,介面是不能被實例化的,只能被別的類繼承去實現相應的功能。

個人覺得介面在python中並沒有那麼重要,因為如果要繼承介面,需要把其中的每個方法全部實現,否則會報編譯錯誤,還不如直接定義一個class,其中的方法實現全部為pass,讓子類重寫這些函數。

當然如果有強制要求,必須所有的實現類都必須按照介面中的定義寫的話,就必須要用介面。

方法一:用抽象類和抽象函數實現方法

[python] view plain copy

#抽象類加抽象方法就等於面向對象編程中的介面

from abc import ABCMeta,abstractmethod

class interface(object):

__metaclass__ = ABCMeta #指定這是一個抽象類

@abstractmethod  #抽象方法

def Lee(self):

pass

def Marlon(self):

pass

class RelalizeInterfaceLee(interface):#必須實現interface中的所有函數,否則會編譯錯誤

def __init__(self):

print ‘這是介面interface的實現’

def Lee(self):

print ‘實現Lee功能’

def Marlon(self):

pass

class RelalizeInterfaceMarlon(interface): #必須實現interface中的所有函數,否則會編譯錯誤

def __init__(self):

print ‘這是介面interface的實現’

def Lee(self):

pass

def Marlon(self):

print “實現Marlon功能”

方法二:用普通類定義介面,

[python] view plain copy

class interface(object): #假設這就是一個介面,介面名可以隨意定義,所有的子類不需要實現在這個類中的函數

def Lee(self):,

pass

def Marlon(self):

pass

class Realaize_interface(interface):

def __init__(self):

pass

def Lee(self):

print “實現介面中的Lee函數”

class Realaize_interface2(interface):

def __init__(self):

pass

def Marlon(self):

print “實現介面中的Marlon函數”

obj=Realaize_interface()

obj.Lee()

obj=Realaize_interface2()

obj.Marlon()

編譯安裝openbabel的python介面

花了2個多小時終於編譯安裝好了openbabel的python介面。

整理要點如下:

PYTHON_BINDINGS用來開啟python介面的編譯

CMAKE_INSTALL_PREFIX用來指定openbabel將要安裝的路徑

EIGEN3_INCLUDE_DIR用來指定在上一步安裝的eigen的路徑

其中babel_installation_path是openbabel的安裝路徑。

可選擇將上述語句加入到 ~/.bashrc 文件。

如何在Windows下安裝配置python介面的caffe

整了一晚上加一上午。網上關於python的記錄較少,這裡寫一下。

這裡的環境是WIN10+cuda v7.5 +cudnn v4 + opencv + pycharm+VS2013

使用的是GPU,我的GPU是titan16G+內存32G

首先是caffe的文件以及第三方庫的編譯,這裡提供一個已經編譯好的的連接,我就是從那裡下好然後編譯完畢的。

點擊打開鏈接 happynear的

然後就是如何編譯python介面。

1、首先先生成兩個python文件,在src/caffe/proto/extract_proto.bat 里生成caffe_pb2.py 這個之後有用。

2、然後打開已經給好的caffe/buildVS2013,打開裡面已經有的工程文件,正常的情況下應該是有7個工程,選中pycaffee單獨作為要編譯的項目。如圖所示:

把pycaffe作為單啟動。注意需要在release x64位下編譯。

如果沒有這個的話,就將這個文件夾里python文件夾中的項目加入即可。如果沒有python項目,就自己建一個,將python文件夾里的cpp文件加入就可以了。

3、選擇pycaffe的屬性,將配置屬性下的VC++目錄中的包含目錄和庫目錄填上你python所在的include和libs 再在C/C++的目錄下的附加包含目錄一項中添加

以我的python為例。D:/python27/Lib;D:/python/include/ 以及D:/Python27/Lib/site-packages/numpy/core/include 如果你安裝了CUDNN這裡可以在預處理器那裡把USE_CUDNN加上,同時在LINKER的輸入目錄下的附加依賴庫中加入cudnn的lib文件。

3、開始編譯即可。這裡要注意一定要和caffe、caffelib在一個項目里編譯,否則會報錯。

4、編譯成功後會在caffe/python/caffe下生成_caffe.pyd 是打不開的

5、配置python環境:需要幾個額外庫

Cython=0.19.2

numpy=1.7.1

scipy=0.13.2

scikit-image=0.9.3

matplotlib=1.3.1

ipython=3.0.0

h5py=2.2.0

leveldb=0.191

networkx=1.8.1

nose=1.3.0

pandas=0.12.0

python-dateutil=1.4,2

protobuf=2.5.0

python-gflags=2.0

pyyaml=3.10

Pillow=2.3.0

six=1.1.0

其中numpy要裝MKL版本的,不然scipy裝上了BLAS不能用

leveldb沒有windows版本的,不過我找到了可以使用的辦法。見這個博客:

點擊打開鏈接

如果有pip install 裝不上的,可以上這個網站找 wheel文件安裝就可以了

點擊打開鏈接

6、最後把目錄中python下的caffe文件夾複製到python27/Lib/site-packages就可以了。

測試的時候只需要在控制台下輸入import caffe 看能載入就知道成功了:)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/186016.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 21:09
下一篇 2024-11-26 21:09

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論