You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pip安装的pymavlink与PyPI直接下载内容不一致的原因及规避方法

关于pymavlink安装后目录与PyPI包内容差异的问题

操作过程

执行以下命令安装最新版pymavlink:

pip install pymavlink

安装日志输出:

Collecting pymavlink
  Using cached pymavlink-2.4.41-py3-none-any.whl.metadata (6.2 kB)
Requirement already satisfied: future in /home/shared/conda/envs/swarm/lib/python3.10/site-packages (from pymavlink) (1.0.0)
Requirement already satisfied: lxml in /home/shared/conda/envs/swarm/lib/python3.10/site-packages (from pymavlink) (5.3.0)
Using cached pymavlink-2.4.41-py3-none-any.whl (11.6 MB)
Installing collected packages: pymavlink
Successfully installed pymavlink-2.4.41

目录内容对比

  • pip安装后的源目录:
/dialects /generator /message_definitions /__pycache__ /CSVReader.py /DFReader.py /fgFDM.py /__init__.py /mavexpression.py /mavextra.py /mavparm.py /mavtestgen.py /mavutil.py /mavwp.py /quaternion.py /rotmat.py /setup.py
  • 直接从PyPI下载的包内容:
/dialects /generator /message_definitions /pymavlink.egg-info /tests /tools /COPYING /CSVReader.py /DFReader.py /fgFDM.py /__init__.py /mavexpression.py /mavextra.py /mavparm.py /mavtestgen.py /mavutil.py /mavwp.py /PKG-INFO /pyproject.toml /quaternion.py /README.md /rotmat.py /setup.cfg /setup.py

可以看到,pip安装后缺失了tests、tools目录,以及COPYING、README.md、pyproject.toml等文件。

原因分析

  1. Wheel包构建策略:PyPI上的pymavlink提供了wheel格式的预构建发布包,这类包在构建时会通过setup.py或pyproject.toml的配置,排除测试用例、开发工具、文档等非运行必需的文件,以此减小包体积,只保留核心运行代码。
  2. 包类型差异:直接从PyPI下载的通常是源码包(sdist格式),这类包包含项目完整源码,包括测试、文档、配置文件等所有内容;而pip默认优先安装体积更小、安装更快的wheel包,两者内容自然存在差异。

避免方法

  1. 从源码仓库安装:克隆项目仓库后执行本地安装,可保留完整项目文件:
git clone https://github.com/ArduPilot/pymavlink.git
cd pymavlink
pip install .
  1. 安装PyPI源码包:从PyPI下载源码包(sdist格式,如.tar.gz文件),再执行本地安装:
# 示例:下载对应版本源码包后执行安装
pip install pymavlink-2.4.41.tar.gz

更新说明

已针对该差异问题在项目的issue跟踪平台提交反馈。

内容的提问来源于stack exchange,提问作者tribbloid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 11:37:20