ImportError: 无法导入Python包的名称

8 浏览
0 Comments

ImportError: 无法导入Python包的名称

我正在使用Python 3.6,并且遇到了一个奇怪的导入错误。我的Python文件只包含一行import formic。但是当我执行脚本时,我会得到以下错误:\n

\nfrom formic import FileSet, Pattern, get_version\nImportError: 无法导入名为\'FileSet\'的模块\n

\n我尝试过使用和不使用sudo来安装Formic(是的,我知道不应该使用sudopip,但有时候情况千变万化)。之前我已经使用过Formic,但是在这种情况下我搞不清楚出了什么问题。\n如果我只有import sys,那么脚本就会正常运行,没有错误,也就是预期的结果。\n有什么想法是为什么会出现这个错误?或者如何修复它?\n附加信息\n

\n

export PYTHONPATH=/home/myName/Workspace/myProject/.pyenv/lib/python3.6/site-packages

\n

\n

$ /home/myName/Workspace/myProject/.pyenv/bin/pip3 show formic
Name: formic
Version: 0.9b8
Summary: An implementation of Apache Ant FileSet and Globs
Home-page: http://www.aviser.asia/formic
Author: Aviser LLP, Singapore
Author-email: formic@aviser.asia
License: GPLv3+
Location: /home/myName/Workspace/myProject/.pyenv/lib/python3.6/site-packages
Requires: 
Required-by: 

\n但是,如果我尝试从相同的Python中导入Formic,它会失败:\n

$ /home/myName/Workspace/myProject/.pyenv/bin/python
Python 3.6.9 (default, Jun 29 2022, 11:45:57) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import formic
Traceback (most recent call last):
  File "", line 1, in 
  File "/home/myName/Workspace/myProject/.pyenv/lib/python3.6/site-packages/formic/__init__.py", line 27, in 
    from formic import FileSet, Pattern, get_version
ImportError: 无法导入名为'FileSet'的模块

0
0 Comments

在Python包中出现"ImportError: cannot import name"错误的原因可能是由于以下原因之一:

1. 模块或者函数名错误:检查导入的模块或者函数名是否正确。确保在导入时使用了正确的名称。

2. 循环导入:如果两个模块相互导入,可能会导致循环导入的错误。解决方法是重新组织代码,避免循环导入。

3. 依赖问题:检查所导入的模块是否已正确安装。有时候导入的模块可能未安装或者版本不匹配,可以使用pip命令安装或者升级模块。

4. 包结构问题:确保导入的模块位于正确的包中,且包的结构正确。检查文件路径和包的层级结构,确保导入路径是正确的。

解决这个问题的方法是:

1. 检查导入的模块或者函数名是否正确,确保没有拼写错误。

2. 检查是否存在循环导入的问题,如果有,重新组织代码以避免循环导入。

3. 使用pip命令检查并安装所需的模块。可以使用以下命令安装更新模块:

   pip install 
   

4. 检查包的结构,确保导入路径是正确的。确认导入的模块位于正确的包中,并且包的层级结构正确。

如果以上方法仍然无法解决问题,可能需要查看具体的错误信息以获得更多的线索。根据错误信息进行进一步的调试和排查,可能需要检查代码中其他相关部分,以确定问题的根源。

0