暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Windows 下编译 Python

生有可恋 2022-10-08
3242

Python 源码是基于 C 的,在 Windows 下编译 Python 需要安装 Microsoft Visual Studio (MSVC)。它的社区版是免费的,可以从官网下载。

  • https://visualstudio.microsoft.com/zh-hans/


下载 Community 2022 版本,下载下来后是个2M大小的安装器,需要在线安装。在选择安装组件时,选择 Python workload 和 Python 本地开发组件。


虽然 Python 代码是基于 C 的,但编译工具还是使用的是 Visual Stdio C++,C++编译器是可以编译C代码的。从 Python 的版本信息中我们可以获取到编译工具的信息,比如直接执行本机上装好的 python:

    $ which python
    /c/Users/Administrator/.pyenv/pyenv-win/shims/python


    $ python
    Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40)
    [MSC v.1927 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>


    复制

    其中的 [MSC v.1927 64 bit (AMD64)] 就是编译器信息,使用的是 Visual C++ 2019 (16.7)。编译器版本可以参考如下列表:

    (来源:https://stackoverflow.com/questions/2676763/what-version-of-visual-studio-is-python-on-my-computer-compiled-with)

    所以在选择 Visual Stdio 组件时需要把 C++ 的组件也选上。C++ 的编译器有好几个版本,其中 MSVC v143 适用于 VS 2022 C++,还有几个兼容老版本的 v142 适用于 VS 2019,v141 适用于 VS 2017,v140 适用于 VS 2015。选中 v143 就够了,如果为了兼容以前的老版本可以选 v142 , v141 。


    安装完 Visual Stdio,我们从 Python 的官网下载 Python 源码包。

    • https://www.python.org/downloads/source/

    下载已发布的版本 v3.10.7,下载的压缩包解压后在源码目录下有个PCbuild目录。在命令行执行 build.bat 进行编译:

      C:\>cd /d d:\Python-3.10.7\PCbuild
      d:\Python-3.10.7\PCbuild> build.bat
      复制

      编译过程需要连网,会调用本机的 python 从网上下载所需要的依赖,同时也会调用 git ,需要将 git 可执行文件的目录加到 Path 环境变量中。


      整个编译过程大概持续3分钟左右,编译目录由多个 VS 工程文件组成,分别用来构造动态库和可执行文件。


      编译完成后,我们运行编译好的 python.exe 可执行文件,banner 信息如下,其中编译器信息为 [MSC v.1930 64 bit (AMD64)] ,v1930 代表的就是 Visual Studio 2022 (17.0)


      全文完。

      如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

             
      文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论