python - python是否依赖于microsoft visual c++ redistributable?

标签 python electron pyinstaller

  • python 是否需要 microsoft visual c++ redistributable 才能运行代码?

  • 我正在使用 pyinstaller 将我的 .py 代码编译成 exe。在某些系统中,我的 exe 要求运行 microsoft visual c++ redistributable package。
  • pyinstaller 在制作 exe 时是否包含 microsoft visual c++ 可再发行文件?如果不是,我如何包含这些文件,这样我就不需要将 microsoft visual c++ redistributable package 安装到其他系统来运行我的软件?
  • 在 python 中构建独立软件的其他替代方法是什么?我正在阅读使用其他语言和python。
  • 我看到electron js和python可以一起使用来制作桌面应用程序。但是我将如何将该应用程序作为独立的 exe 分发?
  • 最佳答案

    Python 本身并不依赖于 MSVC 的存在。你可以下载一个可移植的 Python 包,它会在你复制它的任何地方运行。这些是embeddable来自 https://www.python.org/downloads/windows/

    但是,内部带有 native 扩展代码的 Python 模块可以在多个级别上依赖 MSVC:

  • 如果 native 部分采用二进制格式(在 Windows 上为 .pyd 文件),则实际上是 .dll , 它可能取决于其他 .dll -s,取决于它的构建方式
  • 如果 native 部分是 C/C++ 源代码,它将在安装时构建,通常通过“ setup.py ”,并且此过程需要在系统上安装 C 编译器

  • PyInstaller 是另一回事。首先,它有一个您可能想要阅读的文档。例如页面 What PyInstaller Does and How It Does It清楚地直接回答了您的至少一个问题:

    Bundling to One File

    PyInstaller can bundle your script and all its dependencies into a single executable named myscript (myscript.exe in Windows).



    还有一个已知兼容性和已知兼容性问题的软件包列表:https://github.com/pyinstaller/pyinstaller/wiki/Supported-Packages ,根据您需要的软件包,您可能会发现它很有用。

    虽然它不是重复的,但这个问题:How to package a linked DLL and a pyd file into one self contained pyd file? (以及它链接的另一个)可能会很有趣。

    关于python - python是否依赖于microsoft visual c++ redistributable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58049482/

    相关文章:

    macos - 为 Mac OSX High Sierra 10.13 编译 ffmpeg

    angular - 将 Electron 与 Angular 2 一起用于 Web 和桌面应用程序

    node.js - 为什么 Node 模块会进入 .staging 文件夹?

    python - PyInstaller 和 OpenEXR - exe 崩溃

    python - TensorBoard:将输出图像添加到回调

    python在html中显示unicode

    python - Pyinstaller/Django - pkg_resources.DistributionNotFound : The 'django-omnibus' distribution was not found

    python - pyinstaller 和 onefile build 导致 Error loading Python DLL (error code 14001)

    python - 覆盖python中的递归方法

    python - WxPython 将选择转换为数值 TypeError