ImportError:无法从“ lib”导入名称“ mailparser”

时间:2019-11-07 16:13:11

标签: python

我下载了其他人正在使用的存储库。该文件可用于除我以外的其他所有人,因此我认为本地设置存在问题。

有一行from lib import mailparser会导致错误:

Traceback (most recent call last):
  File "parse.py", line 3, in <module>
    from lib import mailparser
ImportError: cannot import name 'mailparser' from 'lib' (/usr/local/lib/python3.7/site-packages/lib/__init__.py)

“ lib”目录中有100%名为“ mailparser”的文件,但无法识别。

从错误看来,usr/local/lib/python3.7/site-packages/lib似乎是错误的,因为正确的路径是/Users/myname/Documents/Company Name/parser/lib/mailparser.py

1 个答案:

答案 0 :(得分:0)

如果这是您将lib软件包下载到的位置,则需要这样做

sys.path.insert(0, "<PATH-TO-PACKAGE>")

在文件顶部,使Python可以在其中查找。

这里的问题是您的lib文件夹中已经存在一个名为site-packages的软件包,Python在其中寻找要导入的文件。就您的同事而言,他们什么都没有,因此Python会回退到在当前工作目录中查找名为lib的东西。在您的情况下,它将找到此随机lib并使用它。为避免这种情况,您可以通过将Python插入sys.path的第一位置,来告诉Python首先查看当前的工作目录。

如果您下载的存储库中有一个setup.py文件,则可能希望您进入存储库并运行pip install .以从源代码进行安装。这会将代码安装到您的site-packages中。