windows 编译python

引流

        python编译|编译py|xp python|python库|python ssl|python.exe|python|python socket

写在前面

在实际开发中我们往往需要将python编译为我们程序的组件或者支持程序,所以我们需要自己编译一个python解释器。

编译python

        下载py源代码

                py是一个开源的解释语言,我们可以很容易下载到它的源代码:

                       python官网:http://Python源码下载

        如果你需要编译的py可以在xp上运行,最新的可支持xp的python版本为 Python 3.4.4。

        解压源代码并打开

         找到解决方案位置

        打开解决方案

         此处可以设置生成平台,例如需要兼容xp。可以设置为141xp

测试编译文件

        将生成的python_d.exe、python27_d.dll 文件放到一台无py环境的电脑,简单执行python -V测试

处理Python 标准库

        执行简单py代码测试

                编写pytest.py

print("hello word")

                执行py文件,并未正常输出

         添加py标准库

                上图中并未执行成功,因为目前我们拥有了py解释器,但是py的标准库文件并不存在,因此库函数调用失败。

                在源代码目录找到Lib目录,将其复制到实验机器的 python2.7.exe目录下

                 复制到目标位置之后再次执行py程序,结果正确。

编译和系统相关的py库

                接上文,于是我们开开心心地执行一些py程序

                再次出现错误,仔细查看Lib文件夹中也未发现_socket等文件。

                回到py源码,查看是否有类似的字眼

                恍然大悟,py除开封装的逻辑等库。底层的通信等库一定是和操作系统api相关的。

                编译该库生成对应的库文件,后缀为pyd。将其放到DLLs目录。

                 之前缺少的库现在没有报错了。编译所有的库放到DLLs文件夹即可。

                该处编译ssl后将pyd库文件放入DLLs,尝试再次运行。

Python 涉及文件的区别

格式描述
.pypython 源文件
.pycpyc是源文件编译后的目标文件
.pyo源文件优化编译后的文件
.pyd是其他语言写的python库

        相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件,文档上说只要调用了import model那么model.py就会先编译成pyc然后加载。

编译_ssl注意事项

        编译openssl需要注意

        可用的教程:windows 编译openssl

        openssl源码:oepnssl源码下载

                避坑点:

                                1、Perl 自己百度,到官网下一个win安装版的装上设置环境变量就行。

                                2、编译完成后_ssl依赖库设置的是ssleay.lib,项目自身好像是crypt.lib。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值