导入错误:找不到名为attr的模块。

20

我在Python方面只有非常基础的经验。 我正在尝试安装包pyslim(请参见这里的pypi网站)。 我已经...

$ pip install pyslim

Requirement already satisfied: pyslim in ./Library/Python/2.7/lib/python/site-packages/pyslim-0.1-py2.7.egg (0.1)
Requirement already satisfied: msprime in /usr/local/lib/python2.7/site-packages (from pyslim) (0.6.1)
Requirement already satisfied: attrs in /usr/local/lib/python2.7/site-packages (from pyslim) (16.3.0)
Requirement already satisfied: svgwrite in /usr/local/lib/python2.7/site-packages (from msprime->pyslim) (1.1.12)
Requirement already satisfied: jsonschema in /usr/local/lib/python2.7/site-packages (from msprime->pyslim) (2.6.0)
Requirement already satisfied: six in /usr/local/lib/python2.7/site-packages (from msprime->pyslim) (1.10.0)
Requirement already satisfied: numpy>=1.7.0 in /usr/local/lib/python2.7/site-packages/numpy-1.10.4-py2.7-macosx-10.11-x86_64.egg (from msprime->pyslim) (1.10.4)
Requirement already satisfied: h5py in /usr/local/lib/python2.7/site-packages (from msprime->pyslim) (2.8.0)
Requirement already satisfied: pyparsing>=2.0.1 in /usr/local/lib/python2.7/site-packages (from svgwrite->msprime->pyslim) (2.2.0)
Requirement already satisfied: functools32; python_version == "2.7" in /usr/local/lib/python2.7/site-packages (from jsonschema->msprime->pyslim) (3.2.3.post2)

但是当我打开python并尝试导入pyslim时,它失败了。

> import pyslim

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/remi/Library/Python/2.7/lib/python/site-packages/pyslim-0.1-py2.7.egg/pyslim/__init__.py", line 4, in <module>
    from pyslim.slim_metadata import *       # NOQA
  File "/Users/remi/Library/Python/2.7/lib/python/site-packages/pyslim-0.1-py2.7.egg/pyslim/slim_metadata.py", line 1, in <module>
    import attr
ImportError: No module named attr

所以,我做了。

$ pip install attr
Requirement already satisfied: attr in /usr/local/lib/python2.7/site-packages (0.3.1)
and
$ pip install attrs
Requirement already satisfied: attrs in /usr/local/lib/python2.7/site-packages (16.3.0)

我重新启动了Python并尝试再次导入pyslim,但仍然收到相同的错误消息。我还尝试通过执行从github下载和安装文件的操作来解决问题。

$ git clone https://github.com/tskit-dev/pyslim.git
$ cd pyslim
$ python setup.py install --user

此处在pypi网站上所示。在这段代码的最后一行,我得到了以

结尾的一长串输出。

Download error on https://pypi.python.org/simple/: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) -- Some packages may not be found!
No local packages or download links found for attrs
error: Could not find suitable distribution for Requirement.parse('attrs')
我正在使用MAC OSX 10.11.6上的Python 2.7.10。不确定是否重要,但我通常使用homebrew安装东西。我使用的是pip 18.1自/usr/local/lib/python2.7/site-packages/pip(python 2.7)。
$ which python
   /usr/bin/python
$ which pip
   /usr/local/bin/pip

7
欢迎留下关于投票反对的评论! - Remi.b
1
你可能会遇到安装冲突问题,因为macOS默认的Python和Homebrew Python之间存在冲突。请在终端中尝试使用以下命令来查看正在使用哪个版本:which pythonwhich pip - deadvoid
一个警告,_不要删除系统的Python_,它被macOS使用,如果这样做,您可能最终需要重新安装操作系统。只需使用Homebrew的Python作为解释器,并利用虚拟环境来容纳您的项目。 - deadvoid
1
你可以通过在bash配置文件中添加PYTHON_PATH来解决这个问题,例如: export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages - Swagga Ting
1
你好,你安装了两个可能会导致冲突问题的包。
  1. 请卸载attr和attrs包 pip uninstall attr && pip uninstall attrs
  2. 安装attrs pip install attrs
- Nwawel A Iroume
显示剩余4条评论
3个回答

16

不确定 OP 是否已经解决了这个问题,但我最近在启动 scrapy shell 时遇到了这个错误,通过升级 attrs 我解决了它。

pip install --upgrade attrs

一些调查让我明白,这是因为有时候 Python 库对所需的 attrs 版本要求过于宽松。

7

请查看与attrs包相关的这个问题

在您的情况下,您同时安装了attrattrs,它们彼此不兼容,因此python无法正确解析导入的软件包名称。

您应该只使用attrs,所以尝试卸载attr并再次尝试:

python -m pip uninstall attr

如果将来需要使用不兼容的软件包,请考虑使用Python中的虚拟环境。这些虚拟环境非常容易使用,可以非常有用地处理软件包和软件包版本,而不会破坏任何东西。请参阅如何在Python 2中安装和使用virtualenv

-1

3
他们没有使用conda。 - anthony sottile

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