安装line_profiler后如何修复pip?

时间:2017-01-24 13:31:59

标签: python linux pip

使用Ubuntu 14.04.5 LTS。试图用sudo pip3 install line_profiler安装line_profiler,现在当我运行sudo pip3时,我得到以下输出:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.4/dist-packages/pkg_resources/__init__.py", line 72, in <module>
    import packaging.requirements
  File "/usr/local/lib/python3.4/dist-packages/packaging/requirements.py", line 59, in <module>
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() missing 1 required positional argument: 'name'

当我尝试运行django应用程序时遇到类似的错误,所以我猜很多东西都搞砸了。

任何人都知道可能出现什么问题或如何修复?

5 个答案:

答案 0 :(得分:15)

在安装了几个软件包之后,我刚刚在相对新鲜的Ubuntu 14.04配置上遇到了同样的错误。我猜测有错误的代码已被推送到存储库。

查看异常的根本原因:

  File "/usr/local/lib/python3.4/dist-packages/packaging/requirements.py", line 59, in <module>
    MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() missing 1 required positional argument: 'name'

问题是MARKER_EXPR()来电应该有一个&#39;名称&#39;争论,但它没有。我的修复是编辑requirements.py文件,使其包含MARKER_EXPR("")。这解决了我。

答案 1 :(得分:5)

我自己遇到过这种情况并将其报告为包装中的错误,但维护者explained认为这是由于过时的pyparsing版本造成的。升级到pyparsing&gt; = 2.0.2应该可以解决错误。

答案 2 :(得分:0)

只需sudo pip uninstall pyparsing,之后sudo pip install pyparsing,然后一切都会好的。

答案 3 :(得分:0)

接受的答案对我有用。但是,如另一个答案所述,pyparsing需要更新。在requirements.py中添加引号后,我能够升级pyparsing。然后我删除了我的编辑,并且pip继续正常运行。

答案 4 :(得分:0)

类似的问题(line-profiler打破了点子),但是different error

解决(感谢Josh的评论)删除一些本地安装的软件包(回退到操作系统提供的默认值),然后更新:

tMap

警告:此命令将删除文件而不询问。 YMMV首先备份这些文件。