2017-02-14 156 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) 
相關問題