2017-02-14 105 views
1

this question相关,但是我在较新的Ubuntu上并且安装了functools,但运行不正常。'module'object has no attribute'compose'

我在Ubuntu 16.04 64位,每当我尝试做任何事情在Python有趣的,它导致一个错误:

...something relevant to the actual application 
... 

File "/usr/lib/python2.7/locale.py", line 17, in <module> 
    import functools File "/usr/local/lib/python2.7/dist-packages/functools.py", line 72, in 
<module> 
    globals()['c_%s' % x] = globals()[x] = getattr(_functools, x) AttributeError: 'module' object has no attribute 'compose' 

这已经试图用conjure-upRobert和一些实际的蟒蛇码。 我能做些什么来解决它?

functools.py的相关部分看起来是这样的:

try: 
    import _functools 
except ImportError: 
    pass 
else: 
    for x in __all__: 
     globals()['c_%s' % x] = globals()[x] = getattr(_functools, x) 
    del x 

所以,按照我的理解,蟒蛇尝试导入_functools,出现故障并尝试推出一些环路与getattr而这也正是它未能找到一些模块属性。

+0

17.04?我们有二月:P – linusg

+0

好的,请阅读'16.04'。我怀疑这确实是相关的;在一个相关问题中的人有一个类似的问题与12.04。 – Chiffa

+4

你可以在'virtualenv'中安装Python并测试它的工作原理吗?当你安装'functools'时会发生什么?你能否启动和交互式shell并在那里导入'functools',假设它已经安装并准备好像OQ所指示的那样? – nicorellius

回答

1

我会考虑一些事情,才能再次滚......首先,当我遇到这样的问题,我通常会确保我可以在shell中运行的命令:

[email protected]:~$ python 
>>> import functools 
>>> # then do some other stuff to convince yourself it's working 

此外,安装virtualenvvirtualenvwrapper)和,然后创建一个测试:

[email protected]:~$ mkvirtualenv venv 
(venv) [email protected]:~$ python 
>>>> # test here 

另一件事是尝试获取Python的,比方说,第3版(对于像Ubuntu操作系统)的另一个版本:

https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get

然后用这个版本的Python创建一个virtenv

[email protected]:~$ mkvirtualenv --python=/usr/bin/python3.6 

它看起来像你原来的Python安装有一些问题,它可能会比较难以解决。

如果这不起作用,您的主Python可能需要修复。如果您在Linux上,遇到此问题可能会导致其他程序无法正常工作。

如果您认为Python的安装在某种程度上被破坏或损坏了,我可能会考虑重新安装它,并且SO上有几个帖子可以说明这一点。

+0

谢谢。从python shell导入functools不适用于我; 'mkvirtualenv'遇到了一些其他问题,我现在还不会去,我的系统上的其他程序已经不能正常工作,这是我的问题的原因之一:-) – Chiffa

+0

我添加了一些关于重新安装Python的答案。你尝试过这个吗?你是什​​么操作系统,BTW?快速Google搜索出现了一些修复Python的选项。 – nicorellius

+0

好吧,我已经有Python(2.7.13)和python3(3.6.0)。我经常升级为他们安装的所有软件包。我的操作系统是Ubuntu 17.04,但这听起来可能令人困惑,我认为我们可以认为它是16.04。至于修复python,我宁愿在google搜索一般的python修复建议之前尝试修复这个问题。 – Chiffa

0

我并不完全了解原始问题的背景,但我想指出compose函数位于不同的模块中:functional,而不是functools。如果浏览Python 3.03.1 functools文档,这可能很容易错过。

import functional 

functional.compose(outer_fn, inner_fn) 
相关问题