一、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. jstl 与 el表达式

    jar下载地址参考:https://blog.csdn.net/qq_30062589/article/details/80224080 <%@ page language="java ...

  2. PHP调用接口用post方法传送json数据

    1.核心代码: <?php require("helper.php"); header('content-type:text/html;charset=utf-8'); $k ...

  3. Win10系统jdk环境变量配置方法

    http://www.w10zj.com/Win10xy/Win10yh_5620.html

  4. [js]js代码执行顺序/全局&私有变量/作用域链/闭包

    js代码执行顺序/全局&私有变量/作用域链 <script> /* 浏览器提供全局作用域(js执行环境)(栈内存) --> 1,预解释(仅带var的可以): 声明+定义 1. ...

  5. 微信小程序组件封装

    第一步,在page下面新建一个template文件,如下图 第二部,在template.wxml中编写公用组件即要封装的代码模块 <!--pages/template/template.wxml ...

  6. CSRF与JSON

    之前遇到提交json的请求想要进行csrf攻击都是用的闭合表单的方法,很笨很麻烦, 这次看到了别人的操作记录一下. 这里用到了ajax异步请求(但是这里我有个疑问就是:这里用到了cors跨域,是不是必 ...

  7. Servlet Analysis

    @WebServlet("/cdiservlet") //url映射 public class NewServlet extends HttpServlet { private M ...

  8. Oracle 25用户的权限管理

    理解什么是权限 权限指的是执行特定命令或访问数据库对象的权利. 理解权限的作用 (保证)数据库安全性:系统安全性,数据安全性 了解权限的分类 系统权限: 允许用户执行特定的数据库操作,如创建表.创建索 ...

  9. uva12545

    #include<iostream> using namespace std; +; char s[maxn],t[maxn]; int main(){ //freopen("1 ...

  10. C/C++ strict-aliasing

    最近发现了一个奇怪的编译参数-fno-strict-aliasing,好奇之下做了一点研究: 重点参考Understanding C/C++ Strict Aliasing: 所谓的aliasing就 ...