ROS——环境安装(2)python

本文档介绍了如何在Ubuntu系统中安装Python3.7和pip。首先,确认当前Python版本,然后安装make和gcc。接着,卸载旧版pip,通过apt-get安装Python3.7,并创建指向python3.7的软链接。安装pip3并使用python3.7指定升级。在过程中可能遇到权限不足、缺少C编译器等问题,解决方案包括使用sudo、安装gcc和调整指令。最后验证安装成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装python 3.7

相关参考文章
教你Ubuntu安装python3.7
安装python
Ubuntu升级python
第三个文章主要看pip转指向

python的tgz文件已经存于所需环境文件夹中,直接复制放到主目录(home-用户名)下,与桌面等同位置

先查看当前使用版本

python --version
或者
python -V(V是大写)

1.安装make

make安装

2.安装gcc

apt-get install gcc

建议卸载一下pip

卸载pip:
sudo apt-get remove python-pip

最后可能安装一下pip

3.安装python

这里最好是自动安装

apt-get install python3.7

安装完毕后先删除python的软链接

rm -rf /usr/bin/python

然后寻找python3.7的安装位置

which python3.7
//这里一定是python3.7,不加版本可能会指向2或者3.6

建立软链接

ln -s /usr/local/bin/python3.7 /usr/bin/python
//这里安装地址是usr/local/bin/python3.7,不同安装方法地址不一样

验证

python -V
//V是大写或者 python --version

4.安装pip

apt install python3-pip
//python3的版本要安装pip3,版本2直接apt install python-pip

用python3.7指定升级

python3.7 -m pip install --upgrade pip
//一定要用指定升级,普通升级不会改变指向

至此安装完毕。

在过程中可能遇到的问题

1:

E: 无法打开锁文件 (13: 权限不够)
E: 无法获取 dpkg 前端锁,请查看您是否正以 root 用户运行?
解决方法:

sudo -s
结束后退出就是exit 

2:

no acceptable C compiler found in $PATH
这种情况是缺少C编译器
解决方法:

yum install gcc

3:

没有已启用的仓库
执行 “yum repolist all“ 查看您拥有的仓库
解决方法:
将之前指令的yum换成 apt-get
参考文章:
问题原因描述及解决方法

4:

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

解决方法:
问题原因及解决方法

### ROS2Python 的使用方法与开发教程 在 ROS2 安装完成后,可以利用 Python 进行开发。以下是关于如何创建功能包以及编写订阅者的具体说明。 #### 创建功能包 要创建一个基于 `ament_python` 构建类型的 Python 功能包,可以通过命令完成此操作。例如,在已有的工作空间 `ros2_ws/src/` 下执行如下命令: ```bash ros2 pkg create --build-type ament_python learning_topic [^1] ``` 或者指定许可证类型并命名新的 Python 包名: ```bash ros2 pkg create --build-type ament_python --license Apache-2.0 py_pubsub [^2] ``` 上述两条命令分别展示了两种不同方式下的功能包创建过程。第一条命令简单地创建了一个名为 `learning_topic` 的包;第二条则额外指定了许可证为 `Apache-2.0` 并命名为 `py_pubsub`。 #### 编写订阅者节点 订阅者是 ROS 系统中的核心组件之一,负责监听特定主题上的消息流,并在其回调函数中对接收的消息进行处理[^3]。下面提供一段完整的 Python 实现代码作为示例: ```python import rclpy from rclpy.node import Node from std_msgs.msg import String class MinimalSubscriber(Node): def __init__(self): super().__init__('minimal_subscriber') self.subscription = self.create_subscription( String, 'topic', self.listener_callback, 10) self.subscription # prevent unused variable warning def listener_callback(self, msg): self.get_logger().info('I heard: "%s"' % msg.data) def main(args=None): rclpy.init(args=args) minimal_subscriber = MinimalSubscriber() rclpy.spin(minimal_subscriber) minimal_subscriber.destroy_node() rclpy.shutdown() if __name__ == '__main__': main() ``` 这段代码定义了一个基本的订阅者类 `MinimalSubscriber` 继承自 `Node` 类型。它会在初始化时注册到名称为 `'topic'` 的主题上,并设置每次接收到新消息时调用的方法——即 `listener_callback()` 函数。每当有来自该主题的新字符串消息到达时,程序会打印出其内容。 #### 总结 以上介绍了如何通过命令行工具快速搭建适合于 Python 开发的功能包结构,同时也给出了一个基础版的订阅者实现案例供参考学习之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值