找不到“six”,但已安装。

12

我已经安装了six(甚至重新安装过它)。

$ pip show six
---
Name: six
Version: 1.7.3
Location: /usr/lib/python2.6/site-packages
Requires: 

但是,当我尝试运行 csvcut 时,它找不到它。

$ csvcut -n monster.csv
Traceback (most recent call last):
  File "/usr/bin/csvcut", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in <module>
    working_set.require(__requires__)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: six>=1.6.1

这是与 csvcut 相关的部分:

#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'csvkit==0.8.0','console_scripts','csvcut'
__requires__ = 'csvkit==0.8.0'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('csvkit==0.8.0', 'console_scripts', 'csvcut')()
    )

这是在CentOS上。

3个回答

19

使用pip卸载和重新安装six并没有起作用。

sudo pip uninstall six
sudo pip install six

然而,我使用easy_install解决了这个问题:

easy_install --upgrade six

1
我在使用亚马逊网络服务(aws)命令行工具时遇到了问题,并且出现了找不到six的错误。这个解决方案奇妙地解决了问题,但这是一个bug吗?这个解决方案实际上是如何工作的? - tmpearce
注意:如果使用虚拟环境,请不要使用“sudo pip ...”。我刚犯了这个错误。它会跳出虚拟环境:将“which pip”与“sudo which pip”进行比较。 - Curtis Yallop

1
这是因为使用PIP安装Six时,Six库的位置未添加到Python路径中,因此在尝试使用命令时,Python找不到它们。使用Easy_Install安装没有这个问题,因为它在安装Six时会自动更新Python路径变量,使Python能够找到库。
如前所述,使用Easy_Install安装可以解决此问题,但您也可以选择将位置添加到Python路径变量中。

0
今天我遇到了同样的问题,使用pip重新安装没有起作用,而且由于这是一个自定义软件包,我不能使用easy_install进行操作。解决方案是将PYTHONPATH变量指向包含该软件包的site-packages文件夹。
export PYTHONPATH=$PYTHONPATH:/path/to/sites-package

如果你使用虚拟环境,你将会面临这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接