首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Readynas python 'version‘参考

Readynas python 'version‘参考
EN

Stack Overflow用户
提问于 2013-11-08 17:39:47
回答 1查看 150关注 0票数 0

我试图用Python2.6在我的Readynas duo上运行耳机,但遇到了一个与确定操作系统版本相关的错误。作为一个非python专家,我想知道是否有人能帮我解决下面的堆栈跟踪问题:

代码语言:javascript
运行
复制
[   couchpotato.core.event] Error in event "app.version", that wasn't caught: Traceback (most recent call last):   File "/usr/share/cpserver/couchpotato/core/event.py", line 12, in runHandler
    return handler(*args, **kwargs)   File "/usr/share/cpserver/couchpotato/core/_base/_core/main.py", line 167, in version
    elif 'Darwin' in platform.platform(): platf = 'osx'   File "/usr/local/lib/python2.6/platform.py", line 1520, in platform
    elif system in ('Linux',):   File "/usr/local/lib/python2.6/platform.py", line 361, in dist
    return linux_distribution(distname, version, id,   File "/usr/local/lib/python2.6/platform.py", line 333, in linux_distribution
    firstline = f.readline()   File "/usr/local/lib/python2.6/platform.py", line 269, in
_parse_release_file
    else: UnboundLocalError: local variable 'version' referenced before assignment encoding=UTF-8 debug=False args=['--daemon', '--data_dir', '/media/UsenetTmp/.couchpotato', '--pid_file=/var/run/cpserver/server.pid'] app_dir=/usr/share/cpserver data_dir=/media/UsenetTmp/.couchpotato desktop=None options=Namespace(config_file='/media/UsenetTmp/.couchpotato/settings.conf', console_log=False, daemon=True, data_dir='/media/UsenetTmp/.couchpotato', debug=False, pid_file='/var/run/cpserver/server.pid', quiet=False)
EN

回答 1

Stack Overflow用户

发布于 2013-11-08 19:16:40

这是python2.6的一个bug (找不到问题号atm,但在2.7中已经修复了)。在Linux系统上对详细的OS版本信息的代码检查是这样编码的:

代码语言:javascript
运行
复制
def _parse_release_file(firstline):
    #some code
    l = string.split(string.strip(firstline))
    if l:
        version = l[0]
    #more code
    return '', version, id

因此,如果发布文件为空,则永远不会将version变量赋值给它,这会使UnboundLocalError在尝试返回它时抛出异常。

要解决这个问题,您可以修补platform.py文件,使其不抛出此错误,最好是在_parse_release_file的开头添加行version = ''id = '' -这就是在2.7中修复的方式。如果您不能在NAS上修改该文件,那么可以尝试修改原始码,并将对platform.platform()调用替换为像"Linux-generic-x86"这样的硬编码字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19855778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档