Python io模块的问题
我现在在我的系统上运行的是Python 2.5.2版本,但遇到了一些关于io模块的问题。系统提示“找不到名为io的模块”。我想问一下,有没有办法在我的系统中获取io模块。我试过用pip或easy_install安装,但都不行。有没有其他的办法呢?不过我不能升级我的Python版本。
这是我代码的一些错误追踪信息:
/usr/lib/python2.5/site-packages/django/core/urlresolvers.py in _get_callback
raise ViewDoesNotExist("Could not import %s. Error was: %s" % (mod_name, str(e)))
Local vars
'upload_ssv'
e ImportError('No module named io',)
mod_name 'mysite.lists.views'
self<RegexURLPattern submit-csv ^upload_ssv/$>
这是我mysite.lists.views文件中的一些代码片段:
import cStringIO as StringIO
import datetime, csv
from django.http import HttpResponse, HttpResponseRedirect
from dateutil.parser import parse
from django.shortcuts import render_to_response
from django.core.files.base import ContentFile
from django.template import RequestContext
from django.core.urlresolvers import reverse
from mysite.wire.models import Screening, Company, Union, Funder
from mysite.users.models import UserProfile
from mysite.wire.forms import EmailForm, CSVForm
from mysite.lists.models import List, ListEntry
from django.contrib.admin.views.decorators import staff_member_required
from forms import SSVForm
from django.core.mail import send_mail
def upload_ssv(request):
if request.method == 'POST':
form = SSVForm(request.POST, request.FILES)
if form.is_valid():
for result in form.parsed_data:
# TODO: Screening model - confirmation ID = ID of a screening
print result
else:
form = SSVForm()
return render_to_response('lists/upload_ssv.html', locals(), RequestContext(request))
这是urls.py文件中的代码片段:
url(r'^upload-ssv/$', 'sureaudio.lists.views.upload_ssv', name='upload-ssv'),
2 个回答
更新你的Python版本。
如果你没有能力自己从源代码编译,那就去Activestate的网站 http://www.activestate.com/activepython/downloads 下载适合Linux的AS版本。这个版本可以安装在你的个人目录里,和系统自带的Python是完全分开的。如果你是Mac用户,可以下载Activestate的镜像文件。
如果你在Windows上并且没有管理员权限,可以选择Portable Python http://www.portablepython.com/ 或者Moveable Python http://code.google.com/p/movable-python/。
其实,很多Python库只需要把它们的文件复制到你的Python的site-packages文件夹里就可以安装了。同样,如果你有和你安装的Python版本相同的版本,你可以通过复制io模块(这是一个名为io.py的单个文件)来修复你的安装,或者你也可以把io.py安装到你当前的工作目录,它也能正常工作。
花点时间了解Python模块是如何结构化的,PYTHONPATH环境变量是怎么工作的,以及sys.path(可以通过输入import sys; print sys.path来查看)和Python目录的布局。
如果你认真对待Python,那么除非你在做系统管理脚本,否则你再也不会使用操作系统自带的Python版本。真正的应用开发需要你掌控自己的开发环境。
如果你用内置的 文件对象(或者简单来说就是 内置的 open
函数)无法实现你想要的功能,那么在 Python 2 中,和 io
库功能相似的只有 StringIO
和 cStringIO
这两个模块。
如果你能告诉我们你需要 io
库的哪些功能,或者你正在尝试使用哪个需要它的包,我们可以给你推荐一些替代方案。