最近使用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. mongodb操作命令

    连接mongodb:(mongo命令打开的是一个javascript shell.所以js语法在这里面都行得通)mongo 192.168.18.xx:27088/ups -uusername -pp ...

  2. php5.6 一键编译

    1. 替换成aliyun的源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O ...

  3. requirejs代码结构分析

    一.函数入口函数. req = requirejs = function (deps, callback, errback, optional) { //Find the right context, ...

  4. vert.x学习(八),用JDBCClient配合c3p0操作数据库

    今天学习了下vert.x的JDBCClient,我这里将今天的学习笔记记录下来.这次学习中使用了c3p0. 用使用JDBCClient和c3p0得现在pom.xml文件里面导入对应的依赖,下面贴出xm ...

  5. snmp ubuntu/centos--

    软件安装 切换到系统管理员帐户 安装snmp确认snmp代理已安装rpm -q net-snmp如果未安装,安装snmpyum install net-snmp 设置开机自动运行snmp/sbin/c ...

  6. swiper.animate~之~可以执行两种动画的升级版的Swiper Animate

        1.下载插件swiper.animate-twice.min.js,加载进页面. <!DOCTYPE html> <html> <head> ... < ...

  7. JAVASE02-Unit010: 多线程基础 、 TCP通信

    多线程基础 . TCP通信 * 当一个方法被synchronized修饰后,那么 * 该方法称为同步方法,即:多个线程不能同时 * 进入到方法内部执行. package day10; /** * 当多 ...

  8. iOS:根据日志去定位网络请求发生的错误是由于服务端造成的,还是客户端造成的?

    一.介绍 在项目开发中,服务端和客户端的协作尤为重要,而连接它们的最重要的环节之一就是网络请求,对于服务端而言,如果这个环节出现了错误,那么安全性就无从谈起,同时对于客户端而言,如果这个模块出现了错误 ...

  9. Python开发【前端】:CSS

    css样式选择器 标签上设置style属性: <body> <div style="background-color: #2459a2;height: 48px;" ...

  10. flask-sqlalchemy、pytest 的单元测试和事务自动回滚

    flask-sqlalchemy.pytest 的单元测试和事务自动回滚 使用 flask-sqlalchemy 做数据库时,单元测试可以帮助发现一些可能意想不到的问题,像 delete-cascad ...