编写同时在python 2和python 3上运行的程序的最简单方法。

pies的Python项目详细描述


Pies

PyPI versionPyPi downloadsBuild StatusLicenseBitdeli Badge

最简单(也是最美味)的方法来编写一个同时在两个平台上运行的程序 Python2.6+和Python3。

我们吃点派吧!

安装馅饼

pip install pies

或者如果您愿意:

easy_install pies

概述

pies是一个python2&3兼容层,其原理是 代码应该是python3代码。从这个角度出发意味着 当运行在python3馅饼几乎没有增加开销。

而不是提供一堆自定义方法(导致python代码 在任何版本上看起来都不合适)pies的目标是支持端口 python3 api对python2的调用、导入和对象 只有在绝对必要时才使用特殊语法。

馅饼和六个有什么不同?

馅饼比六个小得多,也简单得多,因为它假定 开发人员尽可能使用与python 3兼容的 python 2.6+中包含的版本,而six试图维护 与Python2.4兼容-导致更多重写和 深入到不同的语言领域。另外,如前所述 上面,如果可能的话,馅饼可以让你不必改变 完全是语法。

将馅饼融入你的饮食中

将PIES使用并集成到现有的Python 3 +代码库中 实现python 2&3双重支持)再简单不过了:

from __future__ import absolute_import, division, print_function, unicode_literals

from pies.overrides import *

然后简单地编写标准python3代码,并享受python2支持。

工作不变(良好)

pies最棒的部分是python3代码在 Python2

功能:

  • 圆形
  • 下一步
  • 过滤器
  • 地图
  • 拉链
  • 输入
  • 范围

类型:

  • 对象(str在所有版本的 Python)
  • chr(在python2中创建unichr对象)
  • str(在python2中创建unicode对象)
  • dict(使用dict()创建dict将为您提供 python3 itemview结果,但使用{}不会)

导入:

  • HTML
  • http
  • xmlrpc
  • 螺纹
  • 内置
  • 配置分析器
  • copyreg
  • 排队
  • reprlib
  • socketserver
  • IP地址
  • argparse
  • 枚举(还将此库添加到Python3.0-3.3)

不同的进口(坏的)

一些python3模块与python2相比已经移动了太多。 对应的,我发现有必要创建 在这两个环境中都可以获得python3的命名。自从这些 模块已经存在,允许它们由 python3模块名不能直接命名。相反,您必须导入 这些模块来自pies。

示例:

from pies import pickle

完整列表:

  • 数据库管理
  • urllib
  • 收藏
  • 功能工具
  • imp
  • ITertools
  • 泡菜
  • 字符串
  • 系统
  • 单元测试

特殊语法(丑陋的)

遗憾的是,仍然有一些特殊的语法存在于角落的情况下。

  • py2-如果在python2上运行,则为true
  • py3-如果在python3上运行,则为true
  • u('text')-应替换为便于移植而提供的u'text' python2的代码
  • itemsview(collection)-应替换collection.iteritems(),其中 您不能控制传入的集合
  • valuesView(collection)-应替换collection.values(),其中 不要控制传入的集合
  • keysview(collection)-应该在 不控制传入的集合
  • execute()-在 环境。
  • 整数类型-ma要使用IsInstance(变量、整数类型) 而不是类型(变量,int),因为在 Python2号。
  • newClass(使用_元类(元类,父类))-应替换 “元类=元类”和“newClass(元类=元类)” 作为一种分配元类的方法。

有什么可以改进的?

我敢肯定有很多。如果你遇到任何问题或有任何想法 请毫不犹豫地提出一个错误,提交一个请求,或电子邮件给我 在timothy.crosley@gmail.com


谢谢,我希望你喜欢派!

~timothy crosley

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java同步块与私有不可变对象和同步方法的差异   OracleDataSource、OracleUCP、Commons DBCP和Tomcat连接池之间的java差异?   java在文本文件中写入对象   java访问web服务   如何用java代码并行读取拼花地板文件   spring是否可以将运行时未知的Avro消息转换为特定的Java类   具有复杂对象的java Spring数据MongoDB addToSet()   java ArrayList是否删除元素,是否向下移动列表?   Vaadin中按钮的java多行标题不起作用   java为什么要使用@PropertySource而不是PropertyPlaceHolderConfigure?   java如何检查网站链接是否有数据(图片)或网站是否无效?   java如何禁用对jsp页面的直接访问?   用java实现matlab递归文件夹读取。伊奥。文件   为什么是java。伊奥。FileDescriptor的构造函数是公共的吗?   在java中关闭扫描程序时无法访问的代码?   搜索Java模拟退火接受概率