最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

將Python代碼編譯為pyd文件的兩種方法

 更新時間:2026年03月10日 09:09:27   作者:mahuifa  
文章介紹了兩種將Python代碼編譯為pyd文件的方法:使用Cython和使用Nuitka,Cython方法可以正常調用logging,但不支持高亮顯示,Nuitka方法可以保持調用棧信息,但打包速度慢且生成文件體積大,下面小編為大家詳細說說,需要的朋友可以參考下

方法1:使用Cython編譯python模塊為pyd

  1. 文件后綴名稱推薦使用pyx,py也可以;
  2. 需要創(chuàng)建setup.py編譯文件;
  3. 編譯為pyd后調用logging無法輸出行號、文件名、函數名;

安裝pip install setuptools Cython

創(chuàng)建一個hello.pyx文件,如果在pycharm中不能高亮顯示則打開【文件】【設置】【編輯器】【文件類型】【python】,添加一個*.pyx

def fun1():
    print("Hello from plugin function fun1!")

class Hello:
    def __init__(self):
        pass
    def fun(self):
        print("Hello from plugin class Hello!")

創(chuàng)建一個setup.py文件,用于將hello.pyx編譯為pyd;

from setuptools import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize("hello.pyx"),
    zip_safe=False,
)

運行 python setup.py build_ext --inplace 來編譯生成擴展模塊。

靜態(tài)導入模塊

from plugins.hello import *

fun1()
h = Hello()
h.fun()

動態(tài)導入模塊(可實現(xiàn)插件)

import importlib

# 動態(tài)導入 plugins.hello 模塊
module = importlib.import_module("plugins.hello")
# 或者
sys.path.insert(0, plugin_path) # 添加插件目錄到系統(tǒng)路徑,以便可以找得到插件
module = importlib.import_module("hello")

# 從模塊中獲取 fun1 函數并調用
fun1 = getattr(module, "fun1")
fun1()

# 從模塊中獲取 Hello 類并實例化,然后調用其 fun 方法
Hello = getattr(module, "Hello")
h = Hello()
h.fun()

方法2:使用nuitka打包現(xiàn)有py代碼

  1. 打包為pyd后調用logging可以輸出文件名、行號等信息,保持了Python的調用棧信息;
  2. 打包速度較慢、生成文件體積大;
  • 安裝pip install nuitka
  • 使用命令nuitka --module your_module.py編譯為pyd;(編譯單文件)
  • 使用命令nuitka --module --include-package=src src將src模塊編譯為pyd(一個包)
    • 確保模塊有__init__.py文件,這樣 Python 會把它當作包處理;
    • –module 表示生成 .pyd 文件;
    • –include-package=src 指定要包含的包(假設你的包名為 src);
    • src 是要打包的包目錄;

以上就是將Python代碼編譯為pyd文件的兩種方法的詳細內容,更多關于Python代碼編譯為pyd文件的資料請關注腳本之家其它相關文章!

相關文章

  • Python基于QQ郵箱實現(xiàn)SSL發(fā)送

    Python基于QQ郵箱實現(xiàn)SSL發(fā)送

    這篇文章主要介紹了Python基于QQ郵箱實現(xiàn)SSL發(fā)送,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python基于百度AI實現(xiàn)抓取表情包

    Python基于百度AI實現(xiàn)抓取表情包

    本文先抓取網絡上的表情圖像,然后利用百度 AI 識別表情包上的說明文字,并利用表情文字重命名文件,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Python爬蟲框架Scrapy基本用法入門教程

    Python爬蟲框架Scrapy基本用法入門教程

    這篇文章主要介紹了Python爬蟲框架Scrapy基本用法,結合實例形式分析了xpath簡單使用、xmlfeed模板、csvfeed模板及crawlfeed模板簡單使用方法,需要的朋友可以參考下
    2018-07-07
  • Python中裝飾器使用方法整理

    Python中裝飾器使用方法整理

    這篇文章主要介紹了Python中裝飾器使用方法整理,裝飾器是給現(xiàn)有的模塊增添新的小功能,可以對原函數進行功能擴展,而且還不需要修改原函數的內容,也不需要修改原函數的調用,需要的朋友可以參考下
    2023-08-08
  • pytest生成簡單自定義測試結果的html報告

    pytest生成簡單自定義測試結果的html報告

    這篇文章主要為大家介紹了pytest生成簡單自定義測試結果html報告,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • python tkinter圖形界面代碼統(tǒng)計工具(更新)

    python tkinter圖形界面代碼統(tǒng)計工具(更新)

    這篇文章主要為大家詳細介紹了python tkinter圖形界面代碼統(tǒng)計工具,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 簡單的Python抓taobao圖片爬蟲

    簡單的Python抓taobao圖片爬蟲

    這篇文章主要介紹了簡單的Python抓taobao圖片爬蟲,需要的朋友可以參考下
    2014-10-10
  • Python如何提取html中文本到txt

    Python如何提取html中文本到txt

    這篇文章主要介紹了Python如何提取html中文本到txt問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 完美解決TensorFlow和Keras大數據量內存溢出的問題

    完美解決TensorFlow和Keras大數據量內存溢出的問題

    這篇文章主要介紹了完美解決TensorFlow和Keras大數據量內存溢出的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 用Python展示動態(tài)規(guī)則法用以解決重疊子問題的示例

    用Python展示動態(tài)規(guī)則法用以解決重疊子問題的示例

    這篇文章主要介紹了用Python展示動態(tài)規(guī)則法用以解決重疊子問題的一個棋盤游戲的示例,動態(tài)規(guī)劃常常適用于有重疊子問題和最優(yōu)子結構性質的問題,且耗時間往往遠少于樸素解法,需要的朋友可以參考下
    2015-04-04

最新評論

达日县| 罗平县| 济南市| 凤凰县| 科尔| 仙居县| 衡阳市| 青神县| 都兰县| 平果县| 靖江市| 成安县| 那坡县| 息烽县| 吉水县| 舟山市| 松桃| 湖南省| 汉寿县| 平罗县| 日照市| 沅陵县| 长寿区| 疏勒县| 山阳县| 鸡泽县| 涿鹿县| 施甸县| 全南县| 新巴尔虎左旗| 丹江口市| 甘南县| 辉南县| 盐源县| 江源县| 阳原县| 安国市| 昌邑市| 乐亭县| 疏附县| 杨浦区|