最近使用python开发一些小玩意,发现python实在很符合我的理念:轻量级,功能强大,开放。

python是一种脚本语言,不像java那样需要沉重的编译过程。这使得python更显得轻巧灵便,可以在任意地方写代码并执行。虽然jre7中添加了动态编译java代码的功能,但还是显得很沉重的感觉。自带了很强大的类型系统map,list,set,而且相对于java减少了很多泛型的约束。再使用java的这些类型时会发现不添加泛型就会报警高,要使用不同类型的集合还必须写map<object>这样的代码,这点也体现了弱类型语言的优势。

python有很强大的内置类型,和异常强大的标准库。像map,list这类的数据结构直接是语言内部类型,这样在使用这些类型时更加方便,异常强大的标准库中甚至有小而功能完善的webserver(SimpleHTTPServer),搜索协议文件解析(robots.txt)。所以,基本的需求都可以在python内部找到解决办法。

python是开源的,并且有开放的社区。而且python支持多种方式的使用:脚本,C扩展,内嵌式,嵌入式。这是对各种使用方式的开发啊。我可以自行开发一个python shell来完成启动执行python的目的,甚至可以修改python的sanner和parser来设计自己的编程语言,这就厉害了啊。

但是python还是有点不和我的意思的地方。比如python标准库里里面的gui,pip安装库方式,python程序发行方式都不太和我心意,所以这里想研究一下python,看看python是否能适应一下我的需求。

需求:

1.换掉tcl/tk。修改默认gui编程方式到其他的gui上。
2.适应独立发布的方式进行库安装。即:在发布python代码时可以直接连带使用的库一起发布。
3.发布软件时自带运行环境,不需要使用发布的软件时还需要安装python。(虽然有类似于py2exe的方式解决这两个问题,但是我认为不能达到轻巧,升级方便的目的)

前期调查:

原先想使用cygwin,mingw的方式进行编译python,但发现编译有很多问题放弃这种方式,改用微软的编译器进行编译。

编译器:
为什么微软不单独发行编译器和链接器?
神一样存在的Microsoft Visual C++ Compiler for Python 2.7
Announcing Visual C++ Build Tools 2015

msbuild:
Microsoft Build Tools 2015

书:
Python源码剖析

python resource:
python-2.7.11

自发行python版本制作(一)的更多相关文章

  1. 自发行python版本制作(二)编译

    本系列文章第二篇主要说明windows环境的编译环境搭建以及编译过程. 编译环境选择: 1.选用作神一样存在的Microsoft Visual C++ Compiler for Python 2.7为 ...

  2. Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)

    大致流程: 1.安装Qt(源码版)以及其他必要的环境 2.编译/安装 3.配置 4.使用 ----------正文分割线---------- 1.安装Qt(源码版) 1.1 下载Qt(两个地址二选一即 ...

  3. anaconda虚拟环境管理,从此Python版本不用愁

    1 引言 在前几篇博文中介绍过virtualenv.virtualenvwrapper等几个虚拟环境管理工具,本篇要介绍的anaconda也有很强大的虚拟环境管理功能,甚至相比virtualenv.v ...

  4. Python 版本之 Anaconda

    https://www.anaconda.com/download/#linux Anaconda概述 Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windo ...

  5. conda 管理 python 版本

    conda常用命令 查看当前系统下的环境 conda info -e 创建新的环境 # 指定python版本为2.7 conda create -n env_name python=2.7 # 同时安 ...

  6. pyenv 让 python 版本完美切换

    前言 我觉得如果使用 python 开发的话,还是在 unix/linux 的环境下吧,shell 工具的效率比 windows 高得多,尽管 windows 下也有 cmder 这种神器,而且现在 ...

  7. Linux系统之路——python多版本共存问题(ps:自行切换python版本,pip安装遇到的一些问题)

    经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...

  8. Flask学习之旅--用 Python + Flask 制作一个简单的验证码系统

    一.写在前面 现在无论大大小小的网站,基本上都会使用验证码,登录的时候要验证,下载的时候要验证,而使用的验证码也从那些简简单单的字符图形验证码“进化”成了需要进行图文识别的验证码.需要拖动滑块的滑动验 ...

  9. 如何给自己的Python项目制作安装包

    Packaging Python Projects¶ 本教程将指导您如何打包一个简单的Python项目.它将向您展示如何添加必要的文件和结构来创建包,如何构建包以及如何将其上载到Python包索引. ...

随机推荐

  1. spawn协程学习

    对于IO密集型的程序,一般比较高效的做法是选择异步来实现,因为使用异步的方法更容易写出高效的程序.然而使用异步的话,经验较少的人往往会使自己的程序结构变得很混乱,进而导致程序的可读性变差.记得有人说过 ...

  2. 简单实用JSTL标签库

    1. JSTL标签库是一个什么东东? 简单来说,有了它你就可以在类似HTML的JSP页面里面运用一些高级语法,实现迭代.条件判断.XML文档操作.国际化标签.SQL标签. 2. 如何使用 ? 参考网址 ...

  3. 事务处理-回滚(转账操作)(转自http://www.cnblogs.com/void-m/p/6143540.html)

    JDBC事务处理-四大原则 原子性一致性隔离性持久性 第一步:实现转账操作 假设在账户中,盖伦有余额5000元,赵信有余额2000元, 盖伦要向赵信转账1000元. 1 2 3 4 5 6 7 8 9 ...

  4. Photosohp 2017 已经发布!(下载地址及破解方法在文章底部)

    Adobe Creative Cloud 软件于2016.11.2 全面更新,Adobe Creative Cloud 2017 震撼登场 全新的 2017版本,包含 Photoshop.Illust ...

  5. linux 压缩 解压zip 命令

    将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件zip -r test.zip ./* 打包目录zip test2.zip test2/*解压test.z ...

  6. H5 FormData对象的使用

    XMLHttpRequest Level2 添加了一个新的接口--FormData .[ 主要用于发送表单数据,但也可以独立使用于传输键控数据.与普通的Ajax相比,它能异步上传二进制文件 ] 利用F ...

  7. NSInternalInconsistencyException

    2016-09-10 12:48:13.281 Friend[92304:1843372] *** Terminating app due to uncaught exception 'NSInter ...

  8. Linq语言性能比较

    我不只一次听到不少做技术的朋友随口一句,“linq性能是最差的”,由于缺少具体的数字比照也就没在意,但心里隐隐觉得事实应该不是这样的,我记得我第一次听到有人贬低C# 3.0是在我工作后不久的一个夏季, ...

  9. GCD的简单用法

    /* 创建一个队列用来执行任务,TA属于系统预定义的并行队列即全局队列,目前系统预定义了四个不同运行优先级的全局队列,我们可以通过dispatch_get_global_queue来获取它们 四种优先 ...

  10. Lua屏蔽对象方法和恢复的方法

    背景 对于OO思想实现的类, 对于某些场景需要屏蔽某些方法, 不让调用.过了这段场景, 就恢复这些类的方法, 可以调用. 例如: 工厂具有开工方法, 但是在晚上不允许开工, 所有在晚上这段时间, 见开 ...