Windows 7 在django-tables2中使用pip下载RapidSM时出现类型错误

Windows 7 在django-tables2中使用pip下载RapidSM时出现类型错误,windows-7,python-3.x,typeerror,django-tables2,Windows 7,Python 3.x,Typeerror,Django Tables2,我完全是个python新手。我在32位Windows7 professional上安装了python 3.3.1。我正在尝试安装RapidSMS,它应该和“pip安装RapidSMS”一样简单,它确实启动了这个过程,但它没有完成,我留下了下面的错误消息 我一直在用谷歌搜索它,但我没能找到这个具体的问题,因为我为自己编写代码的人找到了修复错误的方法,我也没看到有人提到RapidSM本身的这个问题。由于它停在Django表中,我想知道是我把安装搞砸了,还是python版本兼容性有问题。我在安装其他软

我完全是个python新手。我在32位Windows7 professional上安装了python 3.3.1。我正在尝试安装RapidSMS,它应该和“pip安装RapidSMS”一样简单,它确实启动了这个过程,但它没有完成,我留下了下面的错误消息

我一直在用谷歌搜索它,但我没能找到这个具体的问题,因为我为自己编写代码的人找到了修复错误的方法,我也没看到有人提到RapidSM本身的这个问题。由于它停在Django表中,我想知道是我把安装搞砸了,还是python版本兼容性有问题。我在安装其他软件时使用过pip,所以我认为这不是问题所在

因此,如果有人在安装pyhton软件包时遇到此错误,或者真的知道原因是什么,我将非常感谢!(我还计划在获得批准后将其发布到RapidSMS邮件列表中,但我想看看这是否是一个更普遍的问题,可能会有解决办法。)

下载/解包django-tables2==0.13.0(来自rapidsms)
正在为包django-tables2运行setup.py egg_info
回溯(最近一次呼叫最后一次):
文件“”,第16行,在
文件“c:\users\mhealth1\appdata\local\temp\pip-build-mhealth1\django-tables2\setup.py”,第7行,在
version=re.search(''版本=''(.+?)'',f.read()).group(1)
文件“C:\Python33\lib\re.py”,第161行,搜索中
返回编译(模式、标志)。搜索(字符串)
TypeError:无法在类似字节的对象上使用字符串模式
从命令python setup.py egg_info完成输出:
回溯(最近一次呼叫最后一次):
文件“”,第16行,在
文件“c:\users\mhealth1\appdata\local\temp\pip-build-mhealth1\django-tables2\setup.py”,第7行,在
version=re.search(''版本=''(.+?)'',f.read()).group(1)
文件“C:\Python33\lib\re.py”,第161行,搜索中
返回编译(模式、标志)。搜索(字符串)
TypeError:无法在类似字节的对象上使用字符串模式
----------------------------------------
命令python setup.py egg\u info失败,错误代码为c:\users\mhealth1\a中的1
ppdata\local\temp\pip-build-mhealth1\django-tables2
在C:\Users\mhealth1\pip\pip.log中存储完整日志

由于回溯中setup.py第7行的以下代码,Django-tables2无法在Python3中安装:

version = re.search('__version__ = "(.+?)"', f.read()).group(1)
如果搜索模式是一个字节对象,这应该可以工作。字节文字可以通过简单地用b预挂起字符串文字来创建,如下所示:

version = re.search(b'__version__ = "(.+?)"', f.read()).group(1)
这就是Python抛出TypeError的原因,其中包含消息“不能在类似字节的对象上使用字符串模式”。正在以字节形式读入文件内容

根据测试环境列表,我认为RapidSM目前还不支持Python3。这可以在这里看到的项目的tox环境列表中看到,其中只列出了Python 2.6和2.7:

为了解决眼前的问题,您需要在使用Python 2.6或2.7的虚拟环境中安装RapidSM。RapidSMS文档在此简要介绍了虚拟环境设置:

您需要在系统上安装Python 2.6或2.7,并使用-p或--Python参数指定virtualenv要使用的Python。以下内容摘自上面链接的RapidSMS文档,但仅限于使用Python 2.7进行指定:

mkvirtualenv --distribute --no-site-packages rapidsms --python=python2.7

非常感谢,切换版本非常有效。:)
mkvirtualenv --distribute --no-site-packages rapidsms --python=python2.7