我下载了其他人正在使用的存储库。该文件可用于除我以外的其他所有人,因此我认为本地设置存在问题。
有一行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
。
答案 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
中。