簡體   English   中英

'module' 對象沒有屬性 'compose'

[英]'module' object has no attribute 'compose'

此問題相關,但我使用的是較新的 Ubuntu,並且安裝了functools但無法正常工作。

我在 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和一些實際的 python 代碼進行了嘗試。 我能做些什么來修復它?

我的functools.py的相關部分如下所示:

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

所以,據我所知,python 嘗試導入_functools ,失敗並嘗試使用getattr啟動一些循環,這就是它無法找到某些模塊屬性的地方。

我會考慮一些事情來重新開始......首先,當我遇到這樣的問題時,我通常確保我可以在 shell 中運行命令:

user@host:~$ python
>>> import functools
>>> # then do some other stuff to convince yourself it's working

另外,安裝virtualenv ( virtualenvwrapper ),然后創建一個用於測試:

user@host:~$ mkvirtualenv venv
(venv) user@host:~$ python
>>>> # test here

另一件要嘗試的事情是獲取另一個版本的 Python,比如版本 3(對於像 Ubuntu 這樣的操作系統):

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

然后用這個版本的 Python 創建一個virtenv

user@host:~$ mkvirtualenv --python=/usr/bin/python3.6

看起來您的 Python 原始安裝存在一些問題,並且可能難以排除故障。

如果這不起作用,您的主要 Python 可能需要修復。 如果您使用的是 Linux,遇到此問題可能會導致其他程序無法正常運行。

如果您認為 Python 的安裝以某種方式損壞或損壞,我可能會考慮重新安裝它,SO 上有幾篇文章涵蓋了這一點。

我不完全理解原始問題的上下文,但我想指出compose函數位於不同的模塊中: functional ,而不是functools 如果瀏覽 Python 3.03.1 functools 文檔,這很容易錯過。

import functional

functional.compose(outer_fn, inner_fn)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM