Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing functools gives me AttributeError 'module' object has no attribute 'compose'

I installed Ubuntu 12.04 64 bit on a new system, and cannot install functools. I have installed this multiple times but do not remember getting this error, and cannot find any solution through Google. What do I need to do?

(myvenv)bobs@myvenv:~$ pip install functools
Downloading/unpacking functools
  Downloading functools-0.5.tar.gz
  Running setup.py egg_info for package functools
    Traceback (most recent call last):
      File "<string>", line 3, in <module>
      File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/__init__.py", line 2, in <module>
        from setuptools.extension import Extension, Library
      File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/extension.py", line 5, in <module>
        from setuptools.dist import _get_unpatched
      File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/dist.py", line 10, in <module>
        from setuptools.compat import numeric_types, basestring
      File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/compat.py", line 17, in <module>
        import httplib
      File "/usr/lib/python2.7/httplib.py", line 71, in <module>
        import socket
      File "/usr/lib/python2.7/socket.py", line 49, in <module>
        from functools import partial
      File "functools.py", line 72, in <module>
        globals()['c_%s' % x] = globals()[x] = getattr(_functools, x)
    AttributeError: 'module' object has no attribute 'compose'
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 3, in <module>

  File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/__init__.py", line 2, in <module>

    from setuptools.extension import Extension, Library

  File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/extension.py", line 5, in <module>

    from setuptools.dist import _get_unpatched

  File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/dist.py", line 10, in <module>

    from setuptools.compat import numeric_types, basestring

  File "/home/bobs/.virtualenvs/myvenv/local/lib/python2.7/site-packages/setuptools/compat.py", line 17, in <module>

    import httplib

  File "/usr/lib/python2.7/httplib.py", line 71, in <module>

    import socket

  File "/usr/lib/python2.7/socket.py", line 49, in <module>

    from functools import partial

  File "functools.py", line 72, in <module>

    globals()['c_%s' % x] = globals()[x] = getattr(_functools, x)

AttributeError: 'module' object has no attribute 'compose'

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /home/bobs/.virtualenvs/myvenv/build/functools
Storing complete log in /home/bobs/.pip/pip.log
like image 488
Trewq Avatar asked Jul 26 '13 02:07

Trewq


People also ask

What is Functools module in Python?

The functools module, part of Python's standard Library, provides useful features that make it easier to work with high order functions (a function that returns a function or takes another function as an argument ).

What is import Functools?

Functools module is for higher-order functions that work on other functions. It provides functions for working with other functions and callable objects to use or extend them without completely rewriting them.


2 Answers

Python2.7 comes with the functools module included.

You can install functools32 if you want to get the lru-cache decorator, which was introduced with Python3.2.

Edit: I actually checked this. I got the same error when I tried to pip-install functools with Python2.7. Simply do import functools and proceed as usual.

like image 172
sjakobi Avatar answered Nov 15 '22 22:11

sjakobi


Make sure that it is functools32 in python version 2.x. In 3.x the tools come inbuilt.

like image 21
Dila Gurung Avatar answered Nov 15 '22 23:11

Dila Gurung