pip install时报错TypeError: __call__() missing 1 required positional argument: 'name'解决

前端之家收集整理的这篇文章主要介绍了pip install时报错TypeError: __call__() missing 1 required positional argument: 'name'解决前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近在Ubuntu14.04使用pip3安装软件包的时候出现了如下错误:TypeError: call() missing 1 required positional argument: ‘name’, 具体报错信息如下:

ziven@ziven-ubuntu-laptop  ~  pip3 install --user cheat
Collecting cheat
  Downloading cheat-2.2.0.tar.gz (63kB)
    100% |████████████████████████████████| 71kB 385kB/s 
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/pip/basecommand.py",line 215,in main
    status = self.run(options,args)
  File "/usr/local/lib/python3.4/dist-packages/pip/commands/install.py",line 335,in run
    wb.build(autobuilding=True)
  File "/usr/local/lib/python3.4/dist-packages/pip/wheel.py",line 749,in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/local/lib/python3.4/dist-packages/pip/req/req_set.py",line 380,in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/local/lib/python3.4/dist-packages/pip/req/req_set.py",line 634,in _prepare_file
    abstract_dist.prep_for_dist()
  File "/usr/local/lib/python3.4/dist-packages/pip/req/req_set.py",line 129,in prep_for_dist
    self.req_to_install.run_egg_info()
  File "/usr/local/lib/python3.4/dist-packages/pip/req/req_install.py",line 412,in run_egg_info
    self.setup_py,self.name,File "/usr/local/lib/python3.4/dist-packages/pip/req/req_install.py",line 387,in setup_py
    import setuptools  # noqa
  File "/home/ziven/.local/lib/python3.4/site-packages/setuptools/__init__.py",line 12,in <module>
    import setuptools.version
  File "/home/ziven/.local/lib/python3.4/site-packages/setuptools/version.py",line 1,in <module>
    import pkg_resources
  File "/home/ziven/.local/lib/python3.4/site-packages/pkg_resources/__init__.py",line 72,in <module>
    import packaging.requirements
  File "/home/ziven/.local/lib/python3.4/site-packages/packaging/requirements.py",line 59,in <module>
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() missing 1 required positional argument: 'name'

网上搜索了一下类似的问题,发现主要原因是:pyparsing的版本过低(具体原因可以参考这里以及这里)。
所以解决方法就是升级本地的pyparsing的版本到>=2.0.2.
所以在我本地我做了如下升级:

pip3 install --user --upgrade pyparsing

之后再执行之前的安装就正常了:

ziven@ziven-ubuntu-laptop  ~  pip3 install --user cheat                    
Collecting cheat
  Using cached cheat-2.2.0.tar.gz
Collecting docopt>=0.6.1 (from cheat)
  Downloading docopt-0.6.2.tar.gz
Requirement already satisfied: pygments>=1.6.0 in /usr/lib/python3/dist-packages (from cheat)
Building wheels for collected packages: cheat,docopt
  Running setup.py bdist_wheel for cheat ... done
  Stored in directory: /home/ziven/.cache/pip/wheels/bb/41/50/bff985ad8a9305bef57ff23efb93aedf92377c8f076c9ab151
  Running setup.py bdist_wheel for docopt ... done
  Stored in directory: /home/ziven/.cache/pip/wheels/b2/16/5f/c33a2bb5f2dce71205f8e65cbfd05647d79d441282be31fd82
Successfully built cheat docopt
Installing collected packages: docopt,cheat
Successfully installed cheat-2.2.0 docopt-0.6.2

猜你在找的Ubuntu相关文章