gpt4 book ai didi

python - 使用不同的 Visual Studio 版本编译 Python 扩展

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:14 25 4
gpt4 key购买 nike

根据Python documentation ,在 Windows 上编译 Python 扩展时,“您应该使用用于构建 Python 本身的相同版本的 VC++”。通常给出的解释是VC运行时版本不匹配会出现问题。但是,可以使用看起来工作正常的较新 Visual Studio 版本编译扩展。

在哪些情况下,不同的运行时会导致问题?我在这个主题上看到的最多信息是 this thread在 python-dev 邮件列表上。是否有一组(希望很少)导致问题行为的用例,或者我还没有遇到任何麻烦只是运气问题?

最佳答案

该邮件线程是我所见过的最全面的 C 运行时不匹配导致问题的列表。一般的问题是每个运行时不与其他运行时共享任何东西,每个运行时都有自己独立的状态,并且它们在外部公开的任何内容都不能通过您自己的代码在运行时之间共享。前一个问题意味着每个运行时都有自己的 errno,第二个问题意味着您不能使用通过文件 I/O 在一个运行时打开的 FILE *' 对象其他功能。

枚举所有可能的问题意味着枚举运行时的整个可见状态(包括间接可见状态),然后枚举它们可以生成和接收的每个可能不兼容的值。

尽管 Microsoft's promise 稍微抵消了这一点使用一个版本的 Microsoft C/C++ 编译器编译的目标文件 (.OBJ) 应该与编译器的后续版本兼容。这意味着,例如,两个不同的运行时不会为 errno 使用一组完全不同的值(例如,ENOENT 始终为 2),因为这些值将作为常量出现在目标文件。

关于python - 使用不同的 Visual Studio 版本编译 Python 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24966785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com