主頁 > 知識(shí)庫 > pyx文件 生成pyd 文件用于 cython調(diào)用的實(shí)現(xiàn)

pyx文件 生成pyd 文件用于 cython調(diào)用的實(shí)現(xiàn)

熱門標(biāo)簽:舉辦過冬奧會(huì)的城市地圖標(biāo)注 正安縣地圖標(biāo)注app 阿里電話機(jī)器人對(duì)話 電銷機(jī)器人系統(tǒng)廠家鄭州 地圖地圖標(biāo)注有嘆號(hào) 遼寧智能外呼系統(tǒng)需要多少錢 qt百度地圖標(biāo)注 400電話申請(qǐng)資格 螳螂科技外呼系統(tǒng)怎么用

pyx文件是python的c擴(kuò)展文件,代碼要符合cython的規(guī)范,用什么編輯器寫都行。我在eric4上寫的,結(jié)果它默認(rèn)用python解釋器來進(jìn)行解釋,還提示有bug,“語法錯(cuò)誤”。

上面的pyx文件還僅僅是源代碼文件,要想被python調(diào)用、要想運(yùn)行,僅僅寫了源代碼還是不夠的。具體來說,還要轉(zhuǎn)成.c或者.c++的文件,并且再進(jìn)一步轉(zhuǎn)成.pyd文件。

pyd文件才是可以直接使用的文件。為了達(dá)到上述目的,就要寫一個(gè)setup.py腳本,如下:

#!/usr/bin/python
#python version: 2.7.3
#Filename: SetupTestOMP.py 
# Run as: 
# python setup.py build_ext --inplace 
 
import sys 
sys.path.insert(0, "..") 
 
from distutils.core import setup 
from distutils.extension import Extension 
from Cython.Build import cythonize 
from Cython.Distutils import build_ext
 
# ext_module = cythonize("TestOMP.pyx") 
ext_module = Extension(
   "TestOMP",
  ["TestOMP.pyx"],
  extra_compile_args=["/openmp"],
  extra_link_args=["/openmp"],
  )
 
setup(
 cmdclass = {'build_ext': build_ext},
 ext_modules = [ext_module], 
)

這個(gè)完全是一個(gè)python腳本,可以在python解釋器下面運(yùn)行。

在控制臺(tái)下,運(yùn)行如下命令‘python setup.py build_ext --inplace',就生成了TestOMP.pyd文件。

當(dāng)然,同時(shí)還有一些雜七雜八的文件,如‘build'目錄下面的‘lib'文件。

這都提示著,這是在windows vistual studio環(huán)境下。

在linux+gcc環(huán)境下,就要生成.so文件了,而且“/openmp”的選項(xiàng)就要寫成“-fopenmp”

寫TestOMP.py

文件上述兩個(gè)步驟,相當(dāng)于把某個(gè)python效率瓶頸模塊(這之前需要用profile工具來定位)用效率更高的代碼寫成了python的c擴(kuò)展形式,接下來,就是要在python代碼中調(diào)用他們。TestOMP.py就是這個(gè)調(diào)用的腳本,如下:

from TestOMP import Test 
Test()

這個(gè)就很容易了,import并且調(diào)用。在控制臺(tái)下,輸入“python TestOMP.py”,運(yùn)行。

補(bǔ)充:python無法導(dǎo)入Cython的.pyx文件?

解決方法:

在import相應(yīng)包之前,添加:

import pyximport
pyximport.install()

如果上面安裝完成后運(yùn)行程序又出現(xiàn)

No module named pyximport

此時(shí)需要:

pip install Cython 

即可~

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Python .py生成.pyd文件并打包.exe 的注意事項(xiàng)說明
  • python 中 .py文件 轉(zhuǎn) .pyd文件的操作
  • python 指定源路徑來解決import問題的操作
  • Python3自帶工具2to3.py 轉(zhuǎn)換 Python2.x 代碼到Python3的操作

標(biāo)簽:興安盟 阜新 合肥 淘寶好評(píng)回訪 濟(jì)源 隨州 信陽 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pyx文件 生成pyd 文件用于 cython調(diào)用的實(shí)現(xiàn)》,本文關(guān)鍵詞  pyx,文件,生成,pyd,用于,cython,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pyx文件 生成pyd 文件用于 cython調(diào)用的實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于pyx文件 生成pyd 文件用于 cython調(diào)用的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章