【发布时间】:2017-06-09 07:58:33
【问题描述】:
使用 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 应用程序时遇到类似的错误,所以我猜很多东西都搞砸了。
有人知道可能出了什么问题或如何解决吗?
【问题讨论】:
-
我不确定是什么原因造成的,但一个想法是从
/usr/local/lib/python3.4/dist-packages中删除本地安装的包(或将它们移开),然后重试。 -
我通常建议不要在 Linux 发行版上通过
sudo pip或sudo pip3安装。 Linux 发行版的优势在于发行版包管理器(适用于 Ubuntu 的 APT)为您管理软件和更新,如果您自己启动sudo pip(或sudo make install等),您将失去很多。相反,我建议坚持使用发行版提供的 Python 包或使用 virtualenv 来安装你需要的东西。这样,如果 virtualenv 搞砸了,停用并删除它并重新开始是很简单的。