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

2024-04-19 15:54:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用cython生成*.c文件,稍后将在MS Visual Studio 2017中编译为C/C++。除了所有的python*.lib都是动态链接的之外,所有的工作都非常出色。 由于我的目标是生成一个自包含的exe(大的exe大小不是问题),我想问一下是否可以静态链接所有Python*.lib。我已经尝试过指定\MTrelease选项并在调试器include上定义所有Python库。你知道吗

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

因此,我对任何一个选项都感兴趣,只要它存在,就可以生成一个自包含的可移植可执行文件。你知道吗

我将感谢你的帮助和建议。你知道吗


Tags: 文件可执行文件目标include链接lib选项静态
1条回答
网友
1楼 · 发布于 2024-04-19 15:54:36

xaav是正确的。你知道吗

我不能评论,所以相反,我会把这作为一个解决方案,希望它将引导你走上正确的道路。你知道吗

赛顿的存在是有原因的。你得到了你的python代码,添加了一些修改,然后bam,你的代码被cythonised了。你知道吗

这有两个原因。模糊的代码,它可以加快代码(取决于)。你知道吗

为什么不使用cython和pyinstaller?这是经过考验的。Pyinstaller甚至说它支持它。你所采取的方法在理论上是可以做到的,但它过于复杂,甚至不需要。你知道吗

可能的问题:

但是他们不能偷我的源代码吗?不,这是赛特化的,所以是的,但不容易。你知道吗

我不能用Nuitka吗?是的,如果你想它是小车,而不是工作的预期。你知道吗

图书馆怎么办,它们不能在另一台电脑上工作?等级库文件的存在是有原因的。一点手动操作,这可以工作。你知道吗

我不能编译成c++然后使它独立吗?看看有多少未回答的问题和无法让它发挥作用的人。另外,当pyinstaller和cython存在并执行相同的操作时,也不需要它。Cython得到广泛支持。只是感觉你在用漫长而艰难的方式做事。你知道吗

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

相关问题 更多 >