linux中利用VScode编写python程序

简介: linux中利用VScode编写python程序

一、创建一个工作空间

首先创建一个工作空间以及一个src子目录,然后再进入工作空间调用catkin_make命令编译

mkdir -p demo02_ws/src
    cd demo02_ws/
    catkin_make

启动VScode

code .

按Ctrl+Shift+B,点击catkin_make:build

将里面的文本全部替换

 

{
        "version": "2.0.0",
        "tasks": [
            {
                "type": "catkin_make",
                "problemMatcher": [
                    "$catkin-gcc"
                ],
                "group": "build",
                "label": "catkin_make: build"
            }
        ]
    }

   

   将上面代码全部替换成下面代码

   

 

{
        "version": "2.0.0",
        "tasks": [
            {   
                "label":"catkin_make:debug",
                "type": "shell",
                "command":"catkin_make",
                "args":[],
                "group": {"kind":"build","isDefault":true},
                "presentation":{
                    "reveal":"always"
                },
                "problemMatcher":"$msCompile"
            }
        ]
    }

这样做的目的是为了方便编译,以后在VScode中按Ctrl+Shift+B就可以实现编译

 

二、再创建一个功能包

在src中生成一个功能包,该功能包依赖于roscpp,rospy,std_msgs,其中roscpp是使用C++实现的库,rospy是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。

建议写要求性能高,算法复杂的代码用C++,写一些功能简单的工具包的代码使用python。

用鼠标右键点击src,选择create catkin package,在输入框填一个名字hello_vscode

再到输入框输入 roscpp rospy std_msgs

在hello_vscode目录下面新建目录scripts

然后在scripts新建hello_vscode_p.py

 

然后修改scripts文件权限,右键点击scripts选择以终端方式打开,输入

chmod +x *.py

三、编辑源文件

再到hello_vscode_p.py中写代码

 

#! /usr/bin/env python
#导入包
import rospy
#入口
if __name__=="__main__":
    #初始化ros节点
    rospy.init_node("hello_p")
    #输出日志
    rospy.loginfo("hello vscode! 这是python!")


四、编辑配置文件

此时打开与里面src同目录的CmakeLists.txt文件

找到

# catkin_install_python(PROGRAMS

# scripts/my_python_script

# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

# )

去掉 #

       #

       #

       #

将scripts/my_python_script改成scripts/hello_vscode_p.py

最后按Ctrl+Shift+B进行编译

#当不配置CmakeLists.txt 执行python文件会抛出异常
#/usr/bin/env :"python":没有那个文件或目录
#原因是:当前ros版本是 noetic ,它使用的是python3
#解决方案
#1、直接声明解释器为python3:#! /usr/bin/env python3(不建议,如果调用别人的代码就可能不能直接修改到他的py文件)
#2、通过软链接的方式将python链接到python3(建议)
    sudo ln -s /usr/bin/python3 /usr/bin/python

五、编译并执行

点击终端里面的+,新建终端

进入工作环境

cd ~/demo02_ws/
roscore

再新开一个终端, 然后再新建终端输入

source ./devel/setup.bash
rosrun hello_vscode hello_vscode_p.py

 

成功后如图所示

相关文章
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
166 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
7月前
|
Python
在VScode环境下配置Python环境的方法
经过上述步骤,你的VSCode环境就已经配置好了。请尽情享受这扇你为自己开启的知识之窗。如同你在冒险世界中前行,你的探索之路只有越走越广,你获得的知识只会越来越丰富,你的能力只会越来越强。
692 37
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
406 7
|
11月前
|
人工智能 Java Python
python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)
尼恩架构团队推出了一系列《LLM大模型学习圣经》PDF,旨在帮助读者深入理解并掌握大型语言模型(LLM)及其相关技术。该系列包括Python基础、Transformer架构、LangChain框架、RAG架构及LLM智能体等内容,覆盖从理论到实践的各个方面。此外,尼恩还提供了配套视频教程,计划于2025年5月前发布,助力更多人成为大模型应用架构师,冲击年薪百万目标。
|
Python
Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南
本文提供了一份详细的PySide6与VSCode联动的操作指南,包括安装配置VSCode、安装必要的扩展、配置扩展以及编辑和运行PySide6项目。文中还提到了相关工具如uic.exe、rcc.exe和designer.exe的用途,并提供了进一步学习的资源。
1932 1
Python实用记录(十六):PyQt/PySide6联动VSCode便捷操作指南
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
2413 3
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
845 1
|
网络安全 开发者 Python
VSCode远程切换Python虚拟环境
VSCode远程切换Python虚拟环境
866 1