Python3.7源码在windows(VS2015)下的编译和安装
下载官方源码,使用vs2015(WIN10SDK),最python3.7.0的源码进行编译,编译出不同的版本(release,debug),并配置python的运行环境(环境变量的配置)。
测试环境介绍和准备
测试环境:
操作系统:windows10
Python版本:3.7.0
VS版本:vs2015社区版(免费)
相关工具下载:
VS版本vs2015社区版(免费)
win10SDK(安装vs2015是可以选择,如果没有安装则需要独立安装)
Python3.7.0 (源码和安装文件)
 
1 下载python源码
2 下载并安装VS2015 社区版(免费,但需要注册用户)
如果VS2015安装不成功会提示如下
Cannot locate MSBuild.exe on PATH or as MSBUILD variable
3 解压python源码进入到pcbuild目录
4 运行build安装nuget
运行build批处理 会先下载nuget包管理开发工具到 externals目录中
由于网络状况不同(测试移动网络可以下载,电信不可以),在部分网络情况下可能无法下载,你可以手动下载后放到源码的externals中,或者直接用我提供的已经下载好nuget和依赖的python源码包
5 下载安装python运行环境
如果已经有了就不需要安装,但要注意后面编译扩展库的时候容易出现冲突的情况,你要知道是应为系统中还有其他python库的原因。
6 下载安装win10SDK
项目配置=》配置属性=》常规=》目标平台版本默认是win10
如果你没有安装win10sdk 需要将所有项目的目标平台版本改为你的编译器支持的版本(比如win8.1)
7 下载依赖源码
由于网络状况不同,在部分网络情况下可能无法下载,你可以手动下载后放到源码的externals中,或者直接用我提供的已经下载好nuget和依赖的python源码包
bzip2-1.0.6
openssl-bin-1.1.0h
sqlite-3.21.0.0
tcltk-8.6.8.0
xz-5.2.2
zips
zlib-1.2.11
下载路径 www.ffmpeg.club/py
8 编译python源码
资源编辑器
TRACKER : 错误 TRK0005: 未能找到: “rc.exe”。系统找不到指定的文件。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
set PATH=%PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
完成编译,编译好的python执行文件和依赖库都在
F:\Python-3.7.0\PCbuild\win32 目录下
build -c Release -p x64
build -c Release -p Win32
build -c Debug -p x64
build -c Debug -p Win32
默认32位
9 安装python
首先我的python源码路径在 F:\Python-3.7.0\
编译完后,会在F:\Python-3.7.0\ 目录下面生成一个python.bat文件,直接运行此文件即可。
如果要将python.exe配置到path中,在windows的path环境变量中添加: F:\Python-3.7.0\PCbuild\win32 ,同时还需要配置 PYTHONHOME 环境变量,设置为F:\Python-3.7.0\,这个涉及到扩展库的读取路径,不设置后面调用扩展库可能会出问题。
10 最后我们测试一下
import sys
sys.path
打印出python系统路径,看下设置是否生效
 
 相关视频教程可以观看

Python3.7源码在windows(VS2015)下的编译和安装的更多相关文章

  1. JVM(一) OpenJDK1.8源码在Ubuntu16.04下的编译

    笔者最近在学习周志明老师编写的<深入理解Java虚拟机>一书,书中第一章的实战部分就是"自己编译JDK",不过书中提到的是OpenJDK 7的编译.由于现在Java开发 ...

  2. 个人从源码理解JIT模式下angular编译AppModule的过程

    承接上文.笔者之前将一个angular项目的启动过程分为了两步: 创建平台得到 PlatformRef ,以及执行平台引用提供的方法编译根模块 AppModule .本文就将着眼于创建好的平台,从an ...

  3. [Dynamic Language] Python3.7 源码安装 ModuleNotFoundError: No module named '_ctypes' 解决记录

    Python3.7 源码安装 ModuleNotFoundError: No module named '_ctypes' 解决记录 源码安装时报错 File "/home/abeenser ...

  4. netcdf源码在windows上的编译

    作者:朱金灿 来源:http://blog.csdn.net/clever101 今天搞搞netcdf源码在windows上的编译,折腾了半天,算是搞成了,特地记录一下过程.我的目标是要生成netcd ...

  5. 【转】python:让源码更安全之将py编译成so

    python:让源码更安全之将py编译成so 应用场景 Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效. python的解释特性是将py编译为独有的二 ...

  6. Openfire4源码部署到eclipse中并编译

    Openfire4源码部署到eclipse中并编译 概述 Openfire是众所周知的基于xmpp协议的IM开源服务,所有操作,配置,监控,调试等以B/S方式进行展示,非常的方便管理员进行管理.它的强 ...

  7. mybatis源码专题(1)--------复习jdbc操作,编译mybatis源码,准备为你的简历加分吧

    本文是作者原创,版权归作者所有.若要转载,请注明出处.文章中若有错误和疏漏之处,还请各位大佬不吝指出,谢谢大家. 1.mybatis的底层是jdbc操作,我们来回顾一下,如下  运行以后的结果如下图: ...

  8. CentOS6.9下手动编译并安装Python3.7.0

    CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍Python-3.7.0版本的手动编译并安装的步骤 1.下载Python-3.7.0 ...

  9. Windows 10下mysql 64位 安装(mysql-5.7.11-winx64安装)

    Windows下mysql 64位 安装(mysql-5.7.11-winx64安装) 系统Windows10 安装包mysql-5.7.11-winx64.zip 安装过程中遇到的问题,请留意4.0 ...

随机推荐

  1. Python3+unitest自动化测试初探(中篇)

    目录 6.生成测试报告 7.编写邮件发送工具 8.发送邮件 发布 0 86 编辑 删除 Python3+unitest自动化测试初探(中篇)(2019-04-18 01:41) 发布 3 245 编辑 ...

  2. Promise来控制JavaScript的异步执行

    一般来说,js.html都是按照从上至下这种方式来进行执行的.这就造成了,基本上所有的执行过程都是在一个线程中进行. 我们都知道,ajax的使用大大的提高了前后台的沟通效率,那么有没有什么方式,让js ...

  3. Flink从入门到放弃(入门篇4) DataStreamAPI

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  4. Linux最小系统移植之早期打印CONFIG_DEBUG_LL

    一.几个关键宏定义 CONFIG_DEBUG_LL. CONFIG_DEBUG_LL_INCLUDE 容我慢慢道来, 首先要使能早期打印, menuconfig必须选中CONFIG_DEBUG_LL, ...

  5. python ddt数据驱动(简化重复代码)

    在接口自动化测试中,往往一个接口的用例需要考虑 正确的.错误的.异常的.边界值等诸多情况,然后你需要写很多个同样代码,参数不同的用例.如果测试接口很多,不但需要写大量的代码,测试数据和代码柔合在一起, ...

  6. Spring Boot Security 详解

    简介 Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架.它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权. 工作 ...

  7. OO_BLOG2_多线程电梯模拟

    作业2-1 单部多线程傻瓜调度(FAFS)电梯的模拟 I. 基于度量的程序结构分析 1)程序结构与基本度量统计图 2)分析 ​ 这次作业基本奠定了本人三次电梯作业的基本架构,简述如下: Elevato ...

  8. 微信小程序 picker 中range-key的坑

    <picker class='fr' bindchange="onChangeBuild" range-key="{{'num'}}" value=&qu ...

  9. python turtle 书写新年快乐

    文章链接:https://mp.weixin.qq.com/s/xYSKH_KLYfooIoelJH02Cg 农历2018年的最后一篇文章,踏上回家的征途前,推荐一个Python的三方库turtle, ...

  10. Java中字符串相加和字符串常量相加区别

    有一道这样的程序: public class TestStringDemo { public static void main(String[] args) { String s1 = "P ...