从运行在linux、macos或bsd下的python脚本调用windows dll中的例程
zugbruecke的Python项目详细描述
概要
zugbruecke是一个实验性的python模块(目前正在开发status 3/alpha)。 它允许从运行在 unices/unix类系统如linux、macos或bsd。 zugbruecke被设计成一个drop-in替换python标准库的cTypes模块。 Zugbruecke是建立在葡萄酒之上的。一个独立的windows python解释器 在后台启动用于执行调用的dll例程。 unix端和windows/wine端之间的通信基于python的 内置多处理连接功能。 zugbruecke(有限)支持指针、结构类型和回调函数。 zugbruecke提供了大量的日志功能,允许调试问题 与自身和葡萄酒有关。 zugbruecke使用python 3语法编写,主要针对 cpythonpython的实现。
关于葡萄酒(来自winehq.org):wine(最初是一个缩写 因为“葡萄酒不是仿真器”)是一个兼容层 能够在几个与POSIX兼容的操作系统上运行Windows应用程序, 例如Linux、MacOS和BSD。而不是像 虚拟机或模拟器,wine将windows api调用转换为posix调用 在运行中,消除了其他方法的性能和内存损失, 允许您将windows应用程序干净地集成到桌面中。
此项目与葡萄酒项目没有任何关联或关联。
先决条件
for usage | |
for tests |
|
for documentation | |
示例
在您喜爱的unix(-like)操作系统上启动交互式python会话,并尝试以下操作:
importzugbrueckeasctypesdll_pow=ctypes.cdll.msvcrt.powdll_pow.argtypes=(ctypes.c_double,ctypes.c_double)dll_pow.restype=ctypes.c_doubleprint('You should expect "1024.0" to show up here: "%.1f".'%dll_pow(2.0,10.0))
您刚刚在unix上看到了msvcrt.dll,微软的c标准库(或者wine的实现)。
对更多感兴趣吗?
- 查看zugbruecke文档中的examples,
- 阅读ctypes’ documentation,
- 除了cTypes语法之外,还可以使用memsyncroutine属性[或] 了解memory synchronization
- 看看zugbruecke的test suite展示了它的全部功能。
很多代码,都是用ctypes'cdll、windll或^{tt8}编写的$ 记住,在windows下运行的,应该和zugbruecke运行得很好 在unix上(假设它不使用wine不支持的windows功能)。 对于更复杂的调用,memory synchronization可能是必需的。
速度
由于给定的复杂性小于1。}小于0.2。 在现代硬件上,每次呼叫的平均开销。它还没有为 速度。查看最新的benchmarks了解更多详细信息。安全性
zugbruecke是出了名的不安全。从来没有,从来没有,运行它 超级用户权限!在安全问题上不要使用它! 有关详细信息,请查看文档中有关security的部分。
需要帮助吗?
请随意在这个项目的GitHub issue tracker中发布问题。
错误和问题
- 在这里报告zugbruecke中的错误:GitHub issue tracker
- 在此处报告cTypes中的错误:Python tracker
- 在这里报告葡萄酒中的虫子:WineHQ Bug Tracking System
确保您已经阅读了zugbruecke文档中关于bugs的章节。
其他
- 完整的项目文档
- Authors
- Change log (current)(自上次发布以来开发分支的更改)
- Change log (past)(发布历史)
- Contributing(^{st非常欢迎R 1}$捐款!)
- FAQ
- License(lgpl v2.1)
- Long-term ideas
- Missing features(完全兼容cTypes)
- Upstream issues(依赖项中的相关错误)
对于生产环境
除非您认为 真的知道你在做什么,除非你绝望了! 作为一个实验性质和阿尔法质量,它很容易失败 在许多不可预测的方面,其中一些可能不明显或可能 甚至没有任何(中间)可识别的症状! 你可能会在没有注意到的情况下得到错误的,荒谬的结果!