win10 下pycharm+anaconda 編譯生成pyd文件

由于生產部署的問題,需要把用python寫的深度學習代碼編譯為可被調用的文件。上網搜索了下,暫時了解到win10下pyd文件比較流行。下面是直接引用某位博主的結論,個人感覺總結的很好。其中Cython庫將已有的Python代碼轉化為C語言的代碼,并作為Python的built-in模塊擴展。

Python的文件類型介紹:

.py ? ? ? python的源代碼文件

.pyc ? ? Python源代碼import后,編譯生成的字節碼

.pyo ? ? Python源代碼編譯優化生成的字節碼。pyo比pyc并沒有優化多少,只是去掉了斷言

.pyd ? ? Python的動態鏈接庫(Windows平臺)

.py, .pyc, .pyo 運行速度幾乎無差別,只是pyc, pyo文件加載的速度更快,不能用文本編輯器查看內容,反編譯不太容易

一、系統環境

win10 64位+anaconda的python環境(此處對應envs為tf_2c)+pycharm

?

二、利用cython創建pyd文件

先安裝cython,如果在線安裝不了,在https://www.lfd.uci.edu/~gohlke/pythonlibs/下載后本地安裝即可。

1.編寫一個測試代碼文件utils.py放在。。。/pyd_test這個project中

class utils:def fun_Hello(self, s):return s

2.在pyd_test這個project中創建一個setup.py文件

from setuptools import setup
from Cython.Build import cythonizesetup(name='test',ext_modules=cythonize('utils.py'),
)

3.在pycharm命令行調用

進入tf_2c這個虛擬環境中(必須進入該環境中,不然無法調用相應的庫)

在terminal中回到當前的project路徑,輸入以下cmd命令:

python setup.py build_ext --inplace

編譯成功后可以看到,project中會出現對應的.c和.pyd文件,如下圖所示:

備注:在anaconda prompt中打開對應envs和路徑,輸入同樣的cmd命令亦可實現。

三、測試

在對應的project中創建一個test.py文件,輸入以下代碼,編譯

from utils import utilsif __name__ == '__main__':obj1 = utils()print(obj1.fun_Hello("pyd測試"))

若出現對應字符就為編譯正確如下圖所示:

注意:

terminal一定也要進入對應的envs,不然無法調用cython。由于之前一直使用anaconda中的spyder作為IDE,沒用過pycharm,在此處被坑了一個上午。望后來者引以為戒!

參考文獻:

https://blog.csdn.net/feijiges/article/details/77932382

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256495.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256495.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256495.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ANSYS——初學路徑之路徑的定義、作用以及ansys路徑模塊GUI的操作解釋

目錄 一、路徑的定義 二、路徑的作用 三、路徑GUI相關操作面板解釋 1、路徑的定義

JVM(4)之 使用MAT排查堆溢出

為什么80%的碼農都做不了架構師?>>> 接下來講解如何設置以及當發生堆溢出的時候怎么排查問題。先看一小段代碼: ??代碼中使用了一個無限循環來為list添加對象,如果采用默認的堆大小的話可能要等待好久才能出現堆溢出的錯誤&a…

caffe 中的一些參數介紹

轉自:http://blog.csdn.net/cyh_24/article/details/51537709 solver.prototxt net: "models/bvlc_alexnet/train_val.prototxt" test_iter: 1000 # test_interval: 1000 # base_lr: 0.01 # 開始的學習率 lr_policy: "step" # 學習率的…

ANSYS——相同模型不同創建方式的同載荷同約束下的比較

目錄 1、問題描述: 2、相同部分: 3、梁單元創建(BEAM) 4、實體單元創建

python 制作二進制文件數據集(bin)

為了方便進行深度學習的程序調用與實現,需要將excel的數據文件轉換為二進制文件。好處就是接口統一,讀寫速度快,節約空間。 一、調用庫 使用xlrd讀入execel表格,經過處理后轉換為對應的dataframe結構,再使用pickle庫…

ConcurrentDictionary的ToDictionary

如果Value是引用&#xff0c;那么在使用Value.Clear()的時候。會清空Value的所有元素&#xff0c;但是不會改變Value的引用 private static void Main(){try{var concurrentDictionary new ConcurrentDictionary<string, List<int>>();concurrentDictionary.TryAd…

遠程連接mysql數據庫注意點記錄

一、如何新建獨立帳號并設置權限 這里我使用Navicat作為我的數據庫管理工具&#xff0c;打開Navicat。 選擇“用戶”--“新建用戶” 輸入用戶名、主機、密碼&#xff0c;需要注意的是&#xff0c;主機那不是寫“localhost”&#xff0c;而是寫“%” 然后可以設置“服務器權限”…

【域控管理】父域的搭建

從這篇博文開始&#xff0c;所有的域控系統都是在虛擬機中創建的。 在VM里安裝Windows Server 2008 R2的方法就不多說了&#xff0c;無腦式安裝&#xff0c;略過不提。 進到系統桌面&#xff0c;打開本地連接&#xff0c;設置網卡的IP地址&#xff0c;如下圖&#xff1a; 注意&…

ANSYS——網格劃分的不同方法以及GUI模塊的操作(自由網格、映射網格、掃掠、拖拉)

目錄 一、GUI操作模塊的解釋 二、不同的網格劃分方法和網格類型

tensorflow2 tensorboard可視化使用

tensorflow2自帶tensorboard&#xff0c;所以不必再自行安裝tensorboard。 一、使用環境 win10 x64&#xff1b; anaconda3tensorflow2&#xff08;cpu版本&#xff09; 二、使用 1.在模型訓練之前插入以下代碼 log_dir os.path.join(logs) #win10下的bug&#xff0c; if…

oracle字符亂碼的解決方法

原因分析&#xff1a; 客戶端字符集就是為了讓數據庫知道我們傳遞過去的字符是屬于哪種字符集&#xff0c;以便于Oracle在存儲字符時進行相應的編碼映射&#xff08;查看客戶端字符集通過查找注冊表中的NLS_LANG鍵&#xff09;。在客戶端查詢數據庫時顯示字符的時候我們使用的是…

[]End of 2017OI

今年大概到此為止了&#xff0c;現在這個算是做一個簡短的階段性總結吧 今年打的第一場大概是省賽&#xff0c;當時整個人處于&#xff08;迷茫&#xff0c;不知道選物理還是選信息備戰中考持續摸魚OI頹廢&#xff09;的狀態&#xff0c;KMP都不會導致簽到題都沒有分&#xff0…

Javascript閉包——懂不懂由你,反正我是懂了

摘要&#xff1a;“如果你不能向一個六歲的孩子解釋清楚&#xff0c;那么其實你自己根本就沒弄懂。”好吧&#xff0c;我試著向一個27歲的朋友就是JS閉包(JavaScript closure)卻徹底失敗了。越來越覺得國內沒有教書育人的氛圍&#xff0c;為了弄懂JS的閉包&#xff0c;我使出了…

ANSYS——命令流學習(材料屬性設置、建模的命令流)

目錄 ANSYS基本關鍵字 命令流的整體結構、每個模塊的標識 !文件說明段/BATCH

IOS用CGContextRef畫各種圖形(文字、圓、直線、弧線、矩形、扇形、橢圓、三角形、圓角矩形、貝塞爾曲線、圖片)...

首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context是圖形上下文,可以將其理解為一塊畫布,我們可以在上面進行繪畫操作,繪制完成后,將畫布放到我們的view中顯示即可,view看作是一個畫框. 自己學習時實現的demo&…

eclipse maven jetty插件方式啟動項目

2019獨角獸企業重金招聘Python工程師標準>>> 1. 2.點擊run即可啟動項目 參考:maven命令具體含義請自行百度.例子:maven clean的作用 / maven djetty 轉載于:https://my.oschina.net/u/3146772/blog/1576710

AWS S3 Windows系統下的文件夾上傳基于python

AWS S3 上傳文件&#xff0c;基于cmd命令行發現無法上傳文件夾&#xff0c;只能上傳單個文件&#xff0c;不知道是我能力不行還是什么原因&#xff0c;如果有大佬了解的可以在下面評論下! 一、環境配置 1.win10 X64&#xff1b; 2.awscli 1.18.91 3.python&#xff08;程序…

51nod 1004 【快速冪】

思路&#xff1a; 掐住最后一位&#xff0c;快速冪一發就好了 #include<cstdio> #include <map> #include<iostream> #include<string.h> #include<algorithm> using namespace std;typedef __int64 LL;int cal(int g,int x) {int ans1;while(g…

ANSYS——桿單元簡介與示例(含新版本2019版本桿實常數設置、ANSYS help的使用、單元列表使用的舉例)

目錄 桿的一些介紹 問題描述: 求解步驟: 一、設置研究問題為靜力學結構問題

Maya 學習資料

羅其勝3d角色強化 CGwhat-Maya變形金剛擎天柱建模教程 Pixar in the box - khan academy Siggraph歷屆優秀動畫 CG軟件發展史&#xff1a;MAYA動畫十年歷程 maya 2014奧迪汽車模型制作教程 &#xff08;yj6k&#xff09; 海賊王路飛建模教程高清全集 轉載于:https://www.cnblog…