2011-08-16 41 views
1

我目前在我的系统中运行的Python版本2.5.2,我有关于IO模块的一些问题。系统显示“找不到名为io的模块”。我想问问是否有我可以在我的系统中获得io模块。我无法使用pip或easy_install进行安装。任何替代品。我无法升级我的python版本。问题的IO模块为蟒蛇

下面是代码

/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'), 
+0

有什么不对的默认文件对象? –

+2

请记住通过点击最好的旁边的复选标记来接受您的问题的答案。你还没有接受任何你最近的__ten__问题的答案。 – agf

回答

2

如果你不能用builtin file object(或简单的builtin open function)做你想要的,唯一的nalogs于在Python 2中可用的io库功能是StringIOcStringIO模块。

如果您向我们提供有关您需要的io的哪些功能的更多信息,或者您尝试使用哪种包需要它,我们可以推荐替代品。

+0

其实,我试图调试另一个人编写的代码。我可以看到这个人已经导入了cStringIO模块本身,而不是io模块。我可以看到io模块不是从其他地方导入的。但仍然,我得到错误是:没有名为io的模块。这真的很奇怪 –

+0

在呈现时抓住ViewDoesNotExist:无法导入mysite.lists.views。错误是:没有名为io的模块。我只是得到这个错误。实际上这个视图文件正在导入cStringIO模块。 –

+0

它只是'输入cStringIO'或它从'io import cStringIO'输入?如果是第二个版本,请将其更改为第一个版本。要发布代码或回溯,请将其编辑为原始问题。 – agf

-2

更新你的Python。

如果你没有从源代码建立它自己的资源,然后去的ActiveState这里http://www.activestate.com/activepython/downloads和下载AS Linux版。它可以安装到您的主目录,并且完全独立于随系统安装的Python。如果你有一台Mac,那么得到ActiveState磁盘镜像。

如果您使用的是Windows,并且没有管理员权限,然后获得便携式的Python http://www.portablepython.com/或可移动的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的操作系统安装的版本,除非你是做系统管理脚本。真正的应用程序开发要求您负责开发环境。

+2

他特别说他不能升级Python。我认为这不是缺乏知识,而是外部限制。 – agf

+0

我认为这是一个外部限制。 IT人员通常禁止在Windows PC或UNIX服务器上安装东西,因为它会混淆标准构建以改变事情。这就是为什么我解释了如何在不改变标准构建的情况下进行升级,而是通过在其旁边添加。你可以吃你的蛋糕,也可以吃。作为您正在构建的应用程序的一部分,将标准系统Python保留在一个单独的位置,这样就不会出现任何问题,并将自己的Python安装在一边。 –