使用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应用程序时遇到类似的错误,所以我猜很多东西都搞砸了。
任何人都知道可能出现什么问题或如何修复?
答案 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首先备份这些文件。