一、2.5.6版本源码编译

  • 解压 Python-2.5.6.tgz

  • 进入 Pcbuild8 文件夹,使用 vs 2013 打开 pybuild.sln (vs 解决方案),进入 vs2015IDE 环境

  • 进入IDE后之后,在载入解决方案时vs会要求我们进行升级操作,确认即可,完了会弹出一个升级报告的html文件,一般没有错误
  • 右键解决方案’pcbuild’ ⇒ 属性

    • 通用属性

      单启动项目 ⇒ 选择 python

    • 配置属性

      • 左上角的【配置】⇒ Debug(Release 可能会报错)
      • 项目上下文 ⇒ 仅选中 python/pythoncore
  • 首先编译 make_buildinfo 和 make_versioninfo

    分别右键 make_buildinfo/make_versioninfo ⇒ 仅用于项目 ⇒ 仅重新生成

  • 编译此解决方案,最终会在开始的 PCbuild8\Win32Debug文件夹下生成 python_d.exe 和 python25_d.dll 文件,可双击 python_d.exe,进入 python 命令行环境。编译中间应该有6个错误,解决方式如下,

  1. timezone 这个宏不再被vs2015支持,所有出现的地方都要替换为_timezone ,剩下的几个关于时间的编译错误也是如此加个下划线【_】就好了。错误都集中在 pythoncore下的timemodule里 line:687附近,也有几个其他的报错变量出现,位置也在这附近,处理方法同样是前面加下划线。
  2. 项目的配置问题:主要是compiler编译出的中间文件名和linker使用的文件名不匹配,参考之前的错误报告, 需要在配置里设置pythoncore项目的输出文件名为$(PyDllName)_d (右键pythoncore ⇒ 属性)。

二、3.6.5版本源码编译

整体流程同编译2.x版本,只是编译时错误不一样,

编译解决方案时有可能会出错:windows sdk version 10.0.15063 was not found,解决方案是根据Fix python 3.6 build failure with VS 2015 and WinSDK!=10.0.15063所说的方法,打开python.props, 将第77行(3.6.5版本此处实际在77行后面一点),

<DefaultWindowsSDKVersion>10.0.15063.0</DefaultWindowsSDKVersion>

更改为,

<DefaultWindowsSDKVersion Condition="$(_RegistryVersion) == '10.0.15063'">10.0.15063.0</DefaultWindowsSDKVersion>

即可。

『Python』VS2015编译源码注意事项的更多相关文章

  1. Linux 安装 python 指定版本--编译源码方式

    自动化脚本: #!/bin/bash sudo apt-get update sudo apt-get install -y gcc make build-essential libssl-dev z ...

  2. 『TensorFlow Internals』笔记_源码结构

    零.资料集合 知乎专栏:Bob学步 知乎提问:如何高效的学习 TensorFlow 代码?. 大佬刘光聪(Github,简书) 开源书:TensorFlow Internals,强烈推荐(本博客参考书 ...

  3. LINUX下编译源码时所需提前安装的常用依赖包列表

    yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-deve ...

  4. Ubuntu编译源码程序依赖查找方法

    ubuntu平时编译源码程序的时候会提示缺少相关的库或是头文件,可以按照以下两种方法进行查找,然后再安装相应的软件包. 1.使用apt-file查找头文件 安装apt-file sudo apt-ge ...

  5. ubuntu配置android开发环境和编译源码遇到的一些问题

    ---------------------------------------------环境变量设置--------------------------------------------- 1.设 ...

  6. 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

    作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...

  7. python重试库retryiny源码剖析

    上篇博文介绍了常见需要进行请求重试的场景,本篇博文试着剖析有名的python第三方库retrying源码. 在剖析其源码之前,有必要讲一下retrying的用法,方便理解. 安装: pip insta ...

  8. Centos7服务器中通过编译源码安装MySQL

    基于在Centos7服务器上使用 yum 安装MySQL5.7到默认路径 在修改文件存储位置的时候,折腾了一番没有将成功将datadir修改为我想要的位置 我决定再尝试一下通过编译源码来自定义安装: ...

  9. 通过清华大学镜像下载Android源码并编译源码

    之前看源码都是在Windows下用SourceInsight看,虽然达到了研究源码的效果,但终究还是有遗憾...趁着周末,准备在Ubuntu虚拟机上下载编译源码. 之前下源码时,有了解一些Androi ...

随机推荐

  1. Mycat原理、应用场景

    Mycat原理 Mycat的原理并不复杂,复杂的是代码,如果代码也不复杂,那么早就成为一个传说了.Mycat的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的SQL语句,首先对SQL语句做了一 ...

  2. ES6 Map 与 Set

    Map 对象 Map 对象保存键值对.任何值(对象或者原始值) 都可以作为一个键或一个值. Maps 和 Objects 的区别 一个 Object 的键只能是字符串或者 Symbols,但一个 Ma ...

  3. 为什么分布式数据库中不使用uuid作为主键?

    分布式数据库当然也有主键的需求,但是为什么不直接使用uuid作为主键呢?作为曾经被这个问题困惑过的人,试着回答一下 1. UUID生成速率低下 Java的UUID依赖于SecureRandom.nex ...

  4. Cutterman - 最好用的切图工具

    Cutterman - 最好用的切图工具 http://www.cutterman.cn/zh/cutterman

  5. 51.webpack vue-cli创建项目

    在上两篇博文中已经安装了node.js.webpack.vue-cli,安装的版本为: 今天通过这篇博文创建项目. 1.选择路径 首先通过命令行进入想要创建项目的路径,例如: 通过e:命令进入盘幅,再 ...

  6. Gitlab构建分布式版本控制系统

    一 安装依赖 1.sudo yum install curl policycoreutils openssh-server openssh-clients 2.sudo systemctl enabl ...

  7. nginx根据CPU配置多线程运行

    转自:Nginx使用教程(二):Nginx配置性能优化之worker配置 配置Nginx workers <br\>NGINX根据指定的配置运行固定数量的工作进程. 这些工作进程负责处理所 ...

  8. php 数组数字 补零

    $hour_list = range(0,24); foreach($hour_list as $key=>$val){ $hour_list[$key] = str_pad($val, 2, ...

  9. bzoj3437 小P的牧场(斜率优化dp)

    3437: 小P的牧场 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2025  Solved: 1110[Submit][Status][Discu ...

  10. Html p 标签

    Html p 标签 <html> <body> <!-- p标签:输出跳到下一段落--> <p>内容</p> 注:段落之前各空出一行. &l ...