最近使用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. RunLoop相关知识的总结

    RunLoop 即运行循环,也叫事件循环,本质为一个死循环.iOS一个程序运行起来之后,默认会开启一个运行循环,有需要处理的操作时,比如用户的输入事件时,RunLoop会自己跑起来运行,没有需要处理的 ...

  2. QFileSystemModel

    #include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDi ...

  3. 包管理工具Carthage使用

    iOS项目中第三方开源库的工具有Cocoapods和Carthage,swift官方出了一个包管理工具SPM(Swift Package Manager). 首先,大体讲一下Cocoapods和Car ...

  4. 去掉无用的多余的空格(string1.前后空格,2.中间空格)

    1.使用NSString中的stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]方法只是去掉左右两边的空格: ...

  5. 关于CLR、CIL、CTS、CLS、CLI、BCL和FCL

    如果要想深入学习.NET平台,那么标题中的这些关键字对你来说并不陌生,这些名词构成了.NET庞大的生态系统,为了宏观认识.NET平台,学些.NET架构体系,针对一些常用常用名词的理解是很有必要的,未必 ...

  6. Linq语言性能比较

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

  7. Python之路【第十九章】:Django 数据库对象关系映射

    Django ORM基本配置 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去 ...

  8. Emphasis on Filtering & Depth Map Occlusion Filling

    http://people.clarkson.edu/~hudsonb/courses/cs611/

  9. magento目录结构说明,Magento文件夹结构说明,Magento folder structure

    /app – 程序根目录     /app/etc – 全局配置文件目录     /app/code – 所有模块安装其模型和控制器的目录     /app/code/core – 核心代码或经过认证 ...

  10. [原创] [YCM] YouCompleteMe安装完全指南

    因为实在实在受不鸟ctags了: 代码中有很多类具有相同名字的变量, 比如 "id". 当我想看下当前的这个 "id" 到底是哪个id的时候, 可怕的事情粗线了 ...