日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

windows平台 python生成 pyd文件

發布時間:2025/7/25 python 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows平台 python生成 pyd文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python的文件類型介紹:

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

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

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

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

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

?

本文的目標是將test.py文件生成test.c文件,然后將test.c文件作為Python源碼的一部分,重新編譯生成Python,使用時直接import test即可使用test模塊。

?

Cython基本介紹:

文檔中這樣總結Cython:

Cython?is an?optimising static compiler?for both the?Python?programming language and the extended Cython programming language (based on?Pyrex). It makes writing C extensions for Python as easy as Python itself.

是一個Python編程語言的編譯器,寫C擴展就像寫Python代碼一樣容易。

其最重要的功能是:

  • write Python code that calls back and forth?from and to C or C++ code natively at any point.

即 將Python代碼翻譯為C代碼。之后就可以像前面文章介紹的C語言擴展Python模塊使用這些C代碼了。

?

?

Cython基本用法:

?在使用Cython編譯Python代碼時,務必要安裝C/C++編譯器,微軟為Python提供了專用的編譯器Microsoft Visual C++ Compiler for Python 2.7(包含32位和64位) 下載地址:?http://aka.ms/vcpython27?百度云鏈接: https://pan.baidu.com/s/143jxjyQFtb_NCIWXt0DVWA 提取碼: 5ick?

1.下載完成并安裝。以本機為例,安裝完成后的路徑為:?

1 C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++?for?Python\9.0

2.修改python代碼

? ?修改python安裝目錄下Lib\distutils\msvc9compiler.py文件(如有必要可能msvccompiler.py文件也需要做相應更改,視系統而定),找到get_build_version方法直接return 9.0

? ?然后再找到find_vcvarsall方法直接返回vcvarsall.bat的路徑(以自己機器安裝后的路徑為準)

? 例如??return?r'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat'

2. 安裝Cython庫

? ?pip install Cython

3. 編寫一個測試代碼文件test.py放在D:/test/test.py

? ?然后在同一目錄下,新建一個setup.py文件,內容如下:

? cythonize()是Cython提供將Python代碼轉換成C代碼的API,

? setup是Python提供的一種發布Python模塊的方法。

4. 使用命令行編譯Python代碼:

3.上述完成之后就可以在windwos下正常編譯python的C擴展。執行如下命令

1 python setup.py install

當然也可以建立一個windows的二進制包:

1 python setup.py bdist_wininst

當然也可以直接編譯到當前目錄:

1 python setup.py build_ext --inplace

build_ext是指明python生成C/C++的擴展模塊(build C/C++ extensions (compile/link to build directory))

--inplace指示 將編譯后的擴展模塊直接放在與test.py同級的目錄中。

參考資料:

https://www.cnblogs.com/jianmu/p/7497274.html?utm_source=debugrun&utm_medium=referral

http://www.cnblogs.com/lazyboy/p/4017567.html






轉載于:https://www.cnblogs.com/shuangpang/p/10528694.html

總結

以上是生活随笔為你收集整理的windows平台 python生成 pyd文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。