鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    3.2.1章节 import requests报错:未存取“requests”Pylance

    已定时 已固定 已锁定 已移动
    ROS2机器人开发:从入门到实践
    requests import
    3
    5
    504
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 4
      开心
      最后由 编辑

      更能包构建后运行:

      ltb@ltb-B560M-DS3H-AC:~/chapt3/topic_ws$ colcon build
      Starting >>> demo_python_topic
      Finished <<< demo_python_topic [0.58s]          
      
      Summary: 1 package finished [0.76s]
      ltb@ltb-B560M-DS3H-AC:~/chapt3/topic_ws$ source install/setup.bash
      ltb@ltb-B560M-DS3H-AC:~/chapt3/topic_ws$ ros2 run demo_python_topic novel_pub_node 
      [INFO] [1730125065.332248754] [novel_node]: novel_node,启动!
      Traceback (most recent call last):
        File "/home/ltb/chapt3/topic_ws/install/demo_python_topic/lib/demo_python_topic/novel_pub_node", line 33, in <module>
          sys.exit(load_entry_point('demo-python-topic==0.0.0', 'console_scripts', 'novel_pub_node')())
        File "/home/ltb/chapt3/topic_ws/install/demo_python_topic/lib/python3.10/site-packages/demo_python_topic/novel_pub_node.py", line 20, in main
          node.download('http://0.0.0.0:8000/novel1.txt')
        File "/home/ltb/chapt3/topic_ws/install/demo_python_topic/lib/python3.10/site-packages/demo_python_topic/novel_pub_node.py", line 11, in download
          requests = requests.get(url)
      UnboundLocalError: local variable 'requests' referenced before assignment
      [ros2run]: Process exited with failure 1
      
      

      requests已安装:

      ltb@ltb-B560M-DS3H-AC:~$ pip show requests
      Name: requests
      Version: 2.32.3
      Summary: Python HTTP for Humans.
      Home-page: https://requests.readthedocs.io
      Author: Kenneth Reitz
      Author-email: me@kennethreitz.org
      License: Apache-2.0
      Location: /home/ltb/.local/lib/python3.10/site-packages
      Requires: certifi, charset-normalizer, idna, urllib3
      Required-by: jupyterlab_server
      ltb@ltb-B560M-DS3H-AC:~$ sudo apt install python3-requests
      [sudo] ltb 的密码: 
      正在读取软件包列表... 完成
      正在分析软件包的依赖关系树... 完成
      正在读取状态信息... 完成                 
      python3-requests 已经是最新版 (2.25.1+dfsg-2ubuntu0.1)。
      升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 26 个软件包未被升级。
      
      

      插件Pylance也重新安装了几次,vscode缓存也清理了,都不行

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        错误提示表明在你的 Python 脚本中,requests 这个局部变量在使用之前被引用,但实际上你应该是想使用已经安装的 requests 模块。问题在于你的代码中对 requests 模块的引用方式不正确。

        在你的脚本 novel_pub_node.py 中,你有一行代码是这样的:

        requests = requests.get(url)
        

        这行代码错误地将 requests 这个模块名重新赋值为一个 requests.get(url) 的结果,这是一个 HTTP 响应对象,而不是模块本身。因此,当你尝试调用 requests.get(url) 时,由于 requests 已经被重新赋值为一个响应对象,所以它会抛出一个 UnboundLocalError,因为局部变量 requests 在赋值前就被引用了。

        为了解决这个问题,你应该在脚本的顶部导入 requests 模块,并且在调用 get 方法时使用这个模块名,而不是覆盖它。下面是修改后的代码示例:

        import requests  # 确保在文件顶部导入
        
        def download(url):
            response = requests.get(url)  # 使用 requests 模块,并将结果赋值给 response
            # 接下来处理 response,例如读取内容等
            return response.text  # 示例:返回响应的文本内容
        

        确保你的 novel_pub_node.py 文件中类似地使用了 requests 模块,而不是错误地重新赋值。

        另外,由于你已经确认 requests 模块已经通过 pip 安装在你的系统中,并且位于 /home/ltb/.local/lib/python3.10/site-packages,你需要确保你的 Python 环境(特别是 ROS2 环境)配置正确,以便它能够找到这个模块。从错误信息来看,你的 ROS2 环境似乎已经正确设置了,因为它能够找到你的 novel_pub_node.py 脚本。

        最后,重新构建你的 ROS2 项目并再次运行,看看问题是否解决:

        cd ~/chapt3/topic_ws
        colcon build
        source install/setup.bash
        ros2 run demo_python_topic novel_pub_node
        

        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @43996173
          最后由 编辑

          @43996173 看下代码

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          4 1 条回复 最后回复 回复 引用 0
          • 4
            开心 @小鱼
            最后由 编辑

            @小鱼 好了小鱼老师,代码抄错了

            小鱼小 1 条回复 最后回复 回复 引用 0
            • 小鱼小
              小鱼 技术大佬 @43996173
              最后由 编辑

              @43996173 ok

              新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

              1 条回复 最后回复 回复 引用 0
              • 第一个帖子
                最后一个帖子
              皖ICP备16016415号-7
              Powered by NodeBB | 鱼香ROS