首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何消除Python扩展对UCRT的依赖

如何消除Python扩展对UCRT的依赖
EN

Stack Overflow用户
提问于 2017-12-11 23:09:07
回答 1查看 131关注 0票数 0

我正在使用cython生成*.c文件,稍后将用MS Visual Studio2017编译为C/C++。这一切都很出色,除了所有python *.lib都是动态链接的小例外。由于我的目标是生成一个自包含的可执行文件(大型可执行文件不是问题),我想问一下是否可以静态链接所有的Python *.lib。我已经尝试指定了Python选项,并在调试器中定义了所有\MT库。

不幸的是,我所有的努力都是徒劳的,因为动态链接的可执行文件在复制到另一台计算机时无法找到python3.dll。目前,我计划复制整个python安装目录和可执行文件,并在编译时指定适当的包含链接。

因此,我对产生一个自包含的可移植可执行文件的任何选择都很感兴趣。

我将非常感谢你的帮助和建议。

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 11:09:20

xaav是正确的。

我不能评论,所以我将把这篇文章作为一个解决方案,希望它能指引你走上正确的道路。

Cython的存在是有原因的。你得到了你的python代码,添加了一些修改,然后,你的代码就变成了Cython化。

这是好的,有两个原因。来混淆代码,它可以加快代码的速度(依赖于)。

为什么不使用cython和pyinstaller呢?这是经过试验和测试的。Pyinstaller甚至说它支持它。你正在采取的方法在理论上是可以做到的,但它太复杂了,甚至不需要。

可能的顾虑:

但他们就不能偷走我的源代码吗?不,它是赛门化的,所以是的,但不容易。

我不能用Nuitka吗?是的,如果你想让它有be并且不能像预期的那样工作。

那么这些库呢,它们不能在另一台pc上运行?等级库文件的存在是有原因的。一些手动处理,这是可以工作的。

我不能编译成c++,然后使其成为独立的吗?看看未回答的问题和无法使其工作的人的数量。而且,当pyinstaller和cython存在并且做同样的事情时,就不需要它了。Cython得到了广泛的支持。感觉就像你在用漫长而艰难的方式来做事情。

但是编译成c++不会更容易。不可能,pyinstaller已经完成了大部分的分支工作。您可能需要到处调整spec文件,否则这是唯一的方法。请记住,它还集成了pyupdater。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47755807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档