【问题标题】:Unable to import requests module in python due to "ImportError: cannot import name utils"由于“ImportError:无法导入名称实用程序”,无法在 python 中导入请求模块
【发布时间】:2018-03-23 17:50:04
【问题描述】:

我正在尝试在使用 python 的程序中导入 python 模块请求(机器人 NAO 的编排)。我不能使用 sudo install 等 shell 命令...我只能通过将模块移动到项目的 lib 文件夹中来导入模块。

所以我已经从 pypi 下载了请求,并且还下载了已移动到请求文件夹 (https://i.imgur.com/XXlSz0N.png) 中的要求。 但是当我尝试从程序中导入请求时,它会返回一个错误:

File "C:\Users\gurfe\AppData\Roaming\PackageManager\apps\.lastUploadedChoregrapheBehavior\behavior_1\../lib\requests\__init__.py", line 112, in <module>
    from . import utils
ImportError: cannot import name utils

为什么我会看到这个错误?

【问题讨论】:

  • 依赖项不应 requests 文件夹中。依赖是python模块,就像requests一样,所以它们应该和requests在同一个文件夹中。
  • 为什么要下载软件包并将它们移动到其他软件包中?只需pip install requests
  • “我不能使用像 sudo install 这样的 shell 命令” 这并不让我感到惊讶,因为您使用的是 Windows。可以用pip install --user requests吗?
  • 我不能使用任何命令,因为这个项目将被上传并加载到机器人中。那么,有没有什么方法可以在不写“pip intall --user requests”或“pip intall requests”之类的命令的情况下解决问题?
  • @Aran-Fey 但这些模块位于请求文件夹中的文件夹中(如 urllib3 文件夹,其中包含所有脚本和 init.py)

标签: python import python-requests nao-robot pepper


【解决方案1】:

在 Choregraphe 包中包含依赖库可能会很棘手(您需要确保它们针对正确的架构进行编译,并且对于虚拟机器人来说事情会有所不同) - 但首先,您是否确保这些库不是已经在机器人上?

我知道 Pepper 中包含“请求”;它可能包含在 Nao 中(我认为是,但我没有方便的 Nao 来检查);如果是,您无需担心将其包含在您的包中(在虚拟机器人上运行时您可能需要修改 pythonpath ......但在所有情况下,您应该能够依赖系统请求而不打包它)

【讨论】:

    【解决方案2】:

    如果您使用 Choregraphe,您可以这样做: 将 lib 文件夹放在 Choregraphe 项目文件夹中。 在 Choregraphe 中创建一个 python 脚本并将其粘贴到 init 中:

    class MyClass(GeneratedClass):
        def __init__(self):
            GeneratedClass.__init__(self)
            self.logger.warning("import only works on physical robot")
            behaviorPath = ALFrameManager.getBehaviorPath(self.behaviorId)
            sys.path.append(behaviorPath)
            k = behaviorPath.rfind("/")
            packagePath = behaviorPath[:k]
            sys.path.append(packagePath)
    
            import utils
            self.utils = utils
    

    【讨论】:

      猜你喜欢
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多