Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 导入错误:无法导入名称';邮件解析器';从';lib';_Python - Fatal编程技术网

Python 导入错误:无法导入名称';邮件解析器';从';lib';

Python 导入错误:无法导入名称';邮件解析器';从';lib';,python,Python,我下载了一个其他人正在使用的存储库。此文件适用于除我之外的所有其他人,因此我认为我的本地设置存在问题 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

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

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)
回溯(最近一次呼叫最后一次):
文件“parse.py”,第3行,在
从库导入邮件解析器
ImportError:无法从“lib”导入名称“mailparser”(/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
如果您将
lib
包下载到了这个位置,那么您需要这样做

sys.path.insert(0, "<PATH-TO-PACKAGE>")
sys.path.insert(0,”)
在文件的顶部,让Python在其中查找它

这里的问题是,您的
站点包
文件夹中已经存在一个名为
lib
的包,Python在该文件夹中查找要导入的文件。对于您的同事来说,他们什么都没有,因此Python返回到当前工作目录中查找名为
lib
的内容。在您的例子中,它会找到这个随机
lib
,并使用它。为了避免这种情况,您告诉Python首先查看当前的工作目录,方法是将它插入到
sys.path
的第一个位置


如果您下载的存储库有一个
setup.py
文件,您可能需要进入repo并运行
pip install.
从源代码安装。这将把代码安装到您的
站点包中

但其他人不必这样做。我敢肯定这是我的设置有问题。如果你下载了repo,它是python包吗?您可能需要进入它并运行
pip安装。
因此它会从
setup.py
安装到您的
站点包中。
不,它是由我们编写的。当问题似乎是您的
站点包中已经有一个名为
lib
的包时,与您的同事不同的是,因此Python在当前的工作树中查找名为
lib
的内容并找到了它,但在您的例子中,它首先查找站点包,看到lib并认为这就是您的意思。
pip卸载lib
或执行
sys.path
技巧。