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

猜你喜欢

转载自blog.csdn.net/u010846934/article/details/72621196