make[1]: *** 警告:文件的修改时间在将来2.1e+07

本文介绍了一种解决在使用git clone命令下载代码后出现的编译警告的方法。该警告提示某些文件的修改时间在未来。文章指出此问题是由于本地服务器时间与实际时间不一致造成的,并提供了一个命令来同步本地文件时间。

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

     在使用git clone 命令下载服务器的代码到本地后编译,有时会出现make[1]: *** 警告:文件的修改时间在将来2.1e+07的警告。后来发现是本地服务器的时间比正常时间慢10多分钟导致。这时可以使用:

find ./* -exec touch {} +

命令来同步本地的文件时间。

Linux raspberrypi 6.12.34+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sat Aug 2 22:18:37 2025 from 192.168.163.80 w@raspberrypi:~ $ pip install dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ conda create -n dronepy27 python=2.7 -bash: conda: command not found w@raspberrypi:~ $ conda create -n dronepy27 python=2.7 -bash: conda: command not found w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ ^C w@raspberrypi:~ $ sudo apt-get install python2.7 Reading package lists... Done Building dependency tree... Done Reading state information... Done Note, selecting 'libpython2.7:armhf' for regex 'python2.7' The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo pip install dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev python-py Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python-py w@raspberrypi:~ $ cd w@raspberrypi:~ $ sudo apt-get install python-pip Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip E: Package 'python-pip' has no installation candidate w@raspberrypi:~ $ sudo apt-get install python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev python-py Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python-py w@raspberrypi:~ $ sudo apt update Hit:1 https://packages.microsoft.com/repos/code stable InRelease Hit:2 http://archive.raspberrypi.com/debian bookworm InRelease Hit:3 http://deb.debian.org/debian bookworm InRelease Hit:4 http://deb.debian.org/debian-security bookworm-security InRelease Get:5 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB] Fetched 55.4 kB in 13s (4,374 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 4 packages can be upgraded. Run 'apt list --upgradable' to see them. w@raspberrypi:~ $ sudo apt install python3-pip python3-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done python3-pip is already the newest version (23.0.1+dfsg-1+rpt1). python3-dev is already the newest version (3.11.2-1+b1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ sudo apt install python-is-python3 Reading package lists... Done Building dependency tree... Done Reading state information... Done python-is-python3 is already the newest version (3.11.2-1+deb12u1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ sudo pip install dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ ^C w@raspberrypi:~ $ pip --version pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) w@raspberrypi:~ $ sudo apt install -y \ > build-essential \ > python3-dev \ libxml2-dev \ libxslt1-dev \ libgeos-dev \ libproj-dev \ libssl-dev \ zlib1g-dev \ libffi-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package w@raspberrypi:~ $ sudo apt update sudo apt install -y \ build-essential \ python3-dev \ libxml2-dev \ libxslt1-dev \ libgeos-dev \ libproj-dev \ libssl-dev \ zlib1g-dev \ libffi-dev Hit:1 https://packages.microsoft.com/repos/code stable InRelease Hit:2 http://deb.debian.org/debian bookworm InRelease Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease Hit:4 http://deb.debian.org/debian bookworm-updates InRelease Hit:5 http://archive.raspberrypi.com/debian bookworm InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 4 packages can be upgraded. Run 'apt list --upgradable' to see them. Reading package lists... Done Building dependency tree... Done Reading state information... Done build-essential is already the newest version (12.9). python3-dev is already the newest version (3.11.2-1+b1). libxml2-dev is already the newest version (2.9.14+dfsg-1.3~deb12u2). libxslt1-dev is already the newest version (1.1.35-1+deb12u1). libssl-dev is already the newest version (3.0.17-1~deb12u1). zlib1g-dev is already the newest version (1:1.2.13.dfsg-1+rpt1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: libcurl4-gnutls-dev libdeflate-dev libgeos-c1v5 libgeos3.11.1 libjbig-dev libjpeg-dev libjpeg62-turbo-dev liblerc-dev liblzma-dev libproj25 libsqlite3-dev libtiff-dev libtiffxx6 libwebp-dev libzstd-dev proj-data Suggested packages: libcurl4-doc libgnutls28-dev libidn-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev libgdal-doc liblzma-doc proj-bin sqlite3-doc The following NEW packages will be installed: libcurl4-gnutls-dev libdeflate-dev libffi-dev libgeos-c1v5 libgeos-dev libgeos3.11.1 libjbig-dev libjpeg-dev libjpeg62-turbo-dev liblerc-dev liblzma-dev libproj-dev libproj25 libsqlite3-dev libtiff-dev libtiffxx6 libwebp-dev libzstd-dev proj-data 0 upgraded, 19 newly installed, 0 to remove and 4 not upgraded. Need to get 11.9 MB of archives. After this operation, 43.5 MB of additional disk space will be used. Get:1 http://deb.debian.org/debian bookworm/main arm64 libcurl4-gnutls-dev arm64 7.88.1-10+deb12u12 [472 kB] Get:2 http://deb.debian.org/debian bookworm/main arm64 libdeflate-dev arm64 1.14-1 [50.0 kB] Get:3 http://deb.debian.org/debian bookworm/main arm64 libffi-dev arm64 3.4.4-1 [56.0 kB] Get:4 http://deb.debian.org/debian bookworm/main arm64 libgeos3.11.1 arm64 3.11.1-1 [683 kB] Get:5 http://deb.debian.org/debian bookworm/main arm64 libgeos-c1v5 arm64 3.11.1-1 [75.6 kB] Get:6 http://deb.debian.org/debian bookworm/main arm64 libgeos-dev arm64 3.11.1-1 [52.4 kB] Get:7 http://deb.debian.org/debian bookworm/main arm64 libjbig-dev arm64 2.1-6.1 [29.9 kB] Get:8 http://deb.debian.org/debian bookworm/main arm64 libjpeg62-turbo-dev arm64 1:2.1.5-2 [292 kB] Get:9 http://deb.debian.org/debian bookworm/main arm64 libjpeg-dev arm64 1:2.1.5-2 [71.8 kB] Get:10 http://deb.debian.org/debian bookworm/main arm64 liblerc-dev arm64 4.0.0+ds-2 [146 kB] Get:11 http://deb.debian.org/debian bookworm/main arm64 liblzma-dev arm64 5.4.1-1 [255 kB] Get:12 http://deb.debian.org/debian bookworm/main arm64 proj-data all 9.1.1-1 [6,212 kB] Get:13 http://deb.debian.org/debian bookworm/main arm64 libproj25 arm64 9.1.1-1+b1 [1,102 kB] Get:14 http://deb.debian.org/debian bookworm/main arm64 libsqlite3-dev arm64 3.40.1-2+deb12u1 [979 kB] Get:15 http://deb.debian.org/debian bookworm/main arm64 libzstd-dev arm64 1.5.4+dfsg2-5 [317 kB] Get:16 http://deb.debian.org/debian bookworm/main arm64 libwebp-dev arm64 1.2.4-0.2+deb12u1 [377 kB] Get:17 http://deb.debian.org/debian bookworm/main arm64 libtiffxx6 arm64 4.5.0-6+deb12u2 [144 kB] Get:18 http://deb.debian.org/debian bookworm/main arm64 libtiff-dev arm64 4.5.0-6+deb12u2 [441 kB] Get:19 http://deb.debian.org/debian bookworm/main arm64 libproj-dev arm64 9.1.1-1+b1 [128 kB] Fetched 11.9 MB in 11min 56s (16.6 kB/s) Selecting previously unselected package libcurl4-gnutls-dev:arm64. (Reading database ... 157355 files and directories currently installed.) Preparing to unpack .../00-libcurl4-gnutls-dev_7.88.1-10+deb12u12_arm64.deb ... Unpacking libcurl4-gnutls-dev:arm64 (7.88.1-10+deb12u12) ... Selecting previously unselected package libdeflate-dev:arm64. Preparing to unpack .../01-libdeflate-dev_1.14-1_arm64.deb ... Unpacking libdeflate-dev:arm64 (1.14-1) ... Selecting previously unselected package libffi-dev:arm64. Preparing to unpack .../02-libffi-dev_3.4.4-1_arm64.deb ... Unpacking libffi-dev:arm64 (3.4.4-1) ... Selecting previously unselected package libgeos3.11.1:arm64. Preparing to unpack .../03-libgeos3.11.1_3.11.1-1_arm64.deb ... Unpacking libgeos3.11.1:arm64 (3.11.1-1) ... Selecting previously unselected package libgeos-c1v5:arm64. Preparing to unpack .../04-libgeos-c1v5_3.11.1-1_arm64.deb ... Unpacking libgeos-c1v5:arm64 (3.11.1-1) ... Selecting previously unselected package libgeos-dev. Preparing to unpack .../05-libgeos-dev_3.11.1-1_arm64.deb ... Unpacking libgeos-dev (3.11.1-1) ... Selecting previously unselected package libjbig-dev:arm64. Preparing to unpack .../06-libjbig-dev_2.1-6.1_arm64.deb ... Unpacking libjbig-dev:arm64 (2.1-6.1) ... Selecting previously unselected package libjpeg62-turbo-dev:arm64. Preparing to unpack .../07-libjpeg62-turbo-dev_1%3a2.1.5-2_arm64.deb ... Unpacking libjpeg62-turbo-dev:arm64 (1:2.1.5-2) ... Selecting previously unselected package libjpeg-dev:arm64. Preparing to unpack .../08-libjpeg-dev_1%3a2.1.5-2_arm64.deb ... Unpacking libjpeg-dev:arm64 (1:2.1.5-2) ... Selecting previously unselected package liblerc-dev:arm64. Preparing to unpack .../09-liblerc-dev_4.0.0+ds-2_arm64.deb ... Unpacking liblerc-dev:arm64 (4.0.0+ds-2) ... Selecting previously unselected package liblzma-dev:arm64. Preparing to unpack .../10-liblzma-dev_5.4.1-1_arm64.deb ... Unpacking liblzma-dev:arm64 (5.4.1-1) ... Selecting previously unselected package proj-data. Preparing to unpack .../11-proj-data_9.1.1-1_all.deb ... Unpacking proj-data (9.1.1-1) ... Selecting previously unselected package libproj25:arm64. Preparing to unpack .../12-libproj25_9.1.1-1+b1_arm64.deb ... Unpacking libproj25:arm64 (9.1.1-1+b1) ... Selecting previously unselected package libsqlite3-dev:arm64. Preparing to unpack .../13-libsqlite3-dev_3.40.1-2+deb12u1_arm64.deb ... Unpacking libsqlite3-dev:arm64 (3.40.1-2+deb12u1) ... Selecting previously unselected package libzstd-dev:arm64. Preparing to unpack .../14-libzstd-dev_1.5.4+dfsg2-5_arm64.deb ... Unpacking libzstd-dev:arm64 (1.5.4+dfsg2-5) ... Selecting previously unselected package libwebp-dev:arm64. Preparing to unpack .../15-libwebp-dev_1.2.4-0.2+deb12u1_arm64.deb ... Unpacking libwebp-dev:arm64 (1.2.4-0.2+deb12u1) ... Selecting previously unselected package libtiffxx6:arm64. Preparing to unpack .../16-libtiffxx6_4.5.0-6+deb12u2_arm64.deb ... Unpacking libtiffxx6:arm64 (4.5.0-6+deb12u2) ... Selecting previously unselected package libtiff-dev:arm64. Preparing to unpack .../17-libtiff-dev_4.5.0-6+deb12u2_arm64.deb ... Unpacking libtiff-dev:arm64 (4.5.0-6+deb12u2) ... Selecting previously unselected package libproj-dev:arm64. Preparing to unpack .../18-libproj-dev_9.1.1-1+b1_arm64.deb ... Unpacking libproj-dev:arm64 (9.1.1-1+b1) ... Setting up libzstd-dev:arm64 (1.5.4+dfsg2-5) ... Setting up proj-data (9.1.1-1) ... Setting up libgeos3.11.1:arm64 (3.11.1-1) ... Setting up libproj25:arm64 (9.1.1-1+b1) ... Setting up libjbig-dev:arm64 (2.1-6.1) ... Setting up libcurl4-gnutls-dev:arm64 (7.88.1-10+deb12u12) ... Setting up libffi-dev:arm64 (3.4.4-1) ... Setting up libwebp-dev:arm64 (1.2.4-0.2+deb12u1) ... Setting up libsqlite3-dev:arm64 (3.40.1-2+deb12u1) ... Setting up libjpeg62-turbo-dev:arm64 (1:2.1.5-2) ... Setting up libgeos-c1v5:arm64 (3.11.1-1) ... Setting up liblerc-dev:arm64 (4.0.0+ds-2) ... Setting up liblzma-dev:arm64 (5.4.1-1) ... Setting up libtiffxx6:arm64 (4.5.0-6+deb12u2) ... Setting up libdeflate-dev:arm64 (1.14-1) ... Setting up libjpeg-dev:arm64 (1:2.1.5-2) ... Setting up libtiff-dev:arm64 (4.5.0-6+deb12u2) ... Setting up libgeos-dev (3.11.1-1) ... Setting up libproj-dev:arm64 (9.1.1-1+b1) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+rpt2+deb12u12) ... w@raspberrypi:~ $ sudo apt install python3-dronekit Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python3-dronekit w@raspberrypi:~ $ sudo pip3 install --no-cache-dir --upgrade setuptools wheel error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ sudo pip3 install --no-cache-dir dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ sudo apt install -y build-essential python3-dev python3-venv Reading package lists... Done Building dependency tree... Done Reading state information... Done build-essential is already the newest version (12.9). python3-dev is already the newest version (3.11.2-1+b1). python3-venv is already the newest version (3.11.2-1+b1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ python3 -m venv --system-site-packages ~/dronekit_safe_env w@raspberrypi:~ $ source ~/dronekit_safe_env/bin/activate (dronekit_safe_env) w@raspberrypi:~ $ pip install --no-cache-dir --upgrade pip setuptools wheel cython Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: pip in ./dronekit_safe_env/lib/python3.11/site-packages (23.0.1) Collecting pip Downloading pip-25.2-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 21.6 kB/s eta 0:00:00 Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (66.1.1) Collecting setuptools Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 23.3 kB/s eta 0:00:00 Requirement already satisfied: wheel in /usr/lib/python3/dist-packages (0.38.4) Collecting wheel Downloading https://www.piwheels.org/simple/wheel/wheel-0.45.1-py3-none-any.whl (72 kB) ━━━━━━━━━━━━━━━━━━ 72.5/72.5 kB 119.9 kB/s eta 0:00:00 Collecting cython Downloading cython-3.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.1 MB) ━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 24.2 kB/s eta 0:00:00 Installing collected packages: wheel, setuptools, pip, cython Attempting uninstall: wheel Found existing installation: wheel 0.38.4 Not uninstalling wheel at /usr/lib/python3/dist-packages, outside environment /home/w/dronekit_safe_env Can't uninstall 'wheel'. No files were found to uninstall. Attempting uninstall: setuptools Found existing installation: setuptools 66.1.1 Uninstalling setuptools-66.1.1: Successfully uninstalled setuptools-66.1.1 Attempting uninstall: pip Found existing installation: pip 23.0.1 Uninstalling pip-23.0.1: Successfully uninstalled pip-23.0.1 Successfully installed cython-3.1.2 pip-25.2 setuptools-80.9.0 wheel-0.45.1 (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': cd pymavlink Password for 'https://cd%20pymavlink@github.com': remote: Invalid username or token. Password authentication is not supported for Git operations. fatal: Authentication failed for 'https://github.com/mavlink/pymavlink.git/' (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git cd pymavlink python setup.py bdist_wheel pip install dist/pymavlink-*.whl --no-cache-dir cd .. Cloning into 'pymavlink'... Username for 'https://github.com': Password for 'https://github.com': remote: Repository not found. fatal: Authentication failed for 'https://github.com/mavlink/pymavlink.git/' -bash: cd: pymavlink: No such file or directory python: can't open file '/home/w/setup.py': [Errno 2] No such file or directory WARNING: Requirement 'dist/pymavlink-*.whl' looks like a filename, but the file does not exist ERROR: Invalid wheel filename (wrong number of parts): 'pymavlink-*' (dronekit_safe_env) w@raspberrypi:/home $ git clone https://github.com/mavlink/pymavlink.git fatal: could not create work tree dir 'pymavlink': Permission denied (dronekit_safe_env) w@raspberrypi:/home $ cd ~ (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': cd pymavlink Password for 'https://cd%20pymavlink@github.com': (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': ^[[D^[[D^[[D^[[D^[[D^[[D^[[D^^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3^[[C^[[C^[[C^[[C^C (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': w Password for 'https://w@github.com': remote: Invalid username or token. Password authentication is not supported for Git operations. fatal: Authentication failed for 'https://github.com/mavlink/pymavlink.git/' (dronekit_safe_env) w@raspberrypi:~ $ rm -rf pymavlink (dronekit_safe_env) w@raspberrypi:~ $ sudo apt install -y \ build-essential \ python3-dev \ libxml2-dev \ libxslt1-dev \ libgeos-dev \ libproj-dev \ libssl-dev \ zlib1g-dev \ libffi-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done build-essential is already the newest version (12.9). python3-dev is already the newest version (3.11.2-1+b1). libxml2-dev is already the newest version (2.9.14+dfsg-1.3~deb12u2). libxslt1-dev is already the newest version (1.1.35-1+deb12u1). libgeos-dev is already the newest version (3.11.1-1). libproj-dev is already the newest version (9.1.1-1+b1). libssl-dev is already the newest version (3.0.17-1~deb12u1). zlib1g-dev is already the newest version (1:1.2.13.dfsg-1+rpt1). libffi-dev is already the newest version (3.4.4-1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir --upgrade setuptools wheel error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $ sudo apt install python3-dronekit Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python3-dronekit (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir Cython numpy error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir --upgrade setuptools wheel error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $ source ~/dronekit_safe_env/bin/activate (dronekit_safe_env) w@raspberrypi:~ $ pip install --no-cache-dir --upgrade setuptools wheel Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (80.9.0) Requirement already satisfied: wheel in ./dronekit_safe_env/lib/python3.11/site-packages (0.45.1) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /simple/wheel/ WARNING: Error parsing dependencies of send2trash: Expected matching RIGHT_PARENTHESIS for LEFT_PARENTHESIS, after version specifier sys-platform (=="darwin") ; extra == 'objc' ~^ (dronekit_safe_env) w@raspberrypi:~ $ pip install --no-cache-dir --upgrade setuptools wheel Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (80.9.0) Requirement already satisfied: wheel in ./dronekit_safe_env/lib/python3.11/site-packages (0.45.1) WARNING: Error parsing dependencies of send2trash: Expected matching RIGHT_PARENTHESIS for LEFT_PARENTHESIS, after version specifier sys-platform (=="darwin") ; extra == 'objc' ~^ (dronekit_safe_env) w@raspberrypi:~ $ python3 -m venv ~/dronekit_safe_env (dronekit_safe_env) w@raspberrypi:~ $ source ~/dronekit_safe_env/bin/activate (dronekit_safe_env) w@raspberrypi:~ $ pip install --upgrade pip setuptools wheel Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: pip in ./dronekit_safe_env/lib/python3.11/site-packages (25.2) Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (80.9.0) Requirement already satisfied: wheel in ./dronekit_safe_env/lib/python3.11/site-packages (0.45.1) (dronekit_safe_env) w@raspberrypi:~ $ pip list | grep -E "setuptools|wheel" setuptools 80.9.0 wheel 0.45.1 (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir Cython numpy error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $
08-03
<think>我们面对的问题是在树莓派上安装DroneKit时遇到的一系列问题,包括: 1. 系统级Python保护(externally-managed-environment)阻止全局安装 2. 无法通过apt安装python-pip和python-dev(因为Debian 12已不再支持Python 2,且默认使用Python 3) 3. 尝试安装pymavlink时GitHub认证失败 4. 在虚拟环境中安装依赖时出现警告(但不影响) 解决方案总结如下: 步骤1:创建并激活虚拟环境(已成功完成) 步骤2:在虚拟环境中安装必要的构建工具(已安装setuptools, wheel, cython) 步骤3:正确克隆pymavlink仓库(使用SSH或带令牌的HTTPS,避免密码认证) 步骤4:在虚拟环境中构建并安装pymavlink 步骤5:安装DroneKit 由于在克隆pymavlink时遇到认证问题,我们需要解决GitHub的访问问题。 详细步骤: 1. 确保虚拟环境已激活 2. 配置GitHub访问(使用SSH密钥或访问令牌) 3. 克隆pymavlink仓库 4. 构建并安装pymavlink 5. 安装DroneKit 以下是具体操作代码和解释:</think>### 解决树莓派上安装 DroneKit 的完整方案 #### 核心问题分析 1. **Debian 12 的 PEP 668 限制**:阻止全局 pip 安装 2. **Python 2.7 支持终止**:无法安装旧版依赖 3. **GitHub 认证失败**:密码认证已停用 4. **依赖库缺失**:地理空间库未正确安装 #### 完整解决方案 ##### 步骤 1:配置虚拟环境(已完成) ```bash python3 -m venv ~/dronekit_safe_env source ~/dronekit_safe_env/bin/activate pip install --upgrade pip setuptools wheel ``` ##### 步骤 2解决 GitHub 认证问题(关键步骤) ```bash # 生成 SSH 密钥(如果尚未生成) ssh-keygen -t ed25519 -C "your_email@example.com" # 将公钥添加到 GitHub 账户 cat ~/.ssh/id_ed25519.pub # 复制输出内容到 GitHub: Settings -> SSH and GPG keys -> New SSH key # 测试 SSH 连接 ssh -T git@github.com # 应显示: "You've successfully authenticated" # 使用 SSH 克隆 pymavlink git clone git@github.com:mavlink/pymavlink.git ``` ##### 步骤 3:安装 pymavlink ```bash cd pymavlink # 安装编译依赖 pip install --no-cache-dir cython numpy # 构建和安装 python setup.py bdist_wheel pip install --no-cache-dir dist/pymavlink-*.whl cd .. ``` ##### 步骤 4:安装 DroneKit 和地理依赖 ```bash # 安装系统级地理库 sudo apt install -y libgeos-dev libproj-dev # 安装 Python 依赖 pip install --no-cache-dir \ dronekit \ pyproj \ shapely \ "numpy==1.26.4" # 兼容树莓派的版本 ``` ##### 步骤 5:验证安装 ```python # 创建测试脚本 test_dronekit.py from dronekit import connect import pyproj print("DroneKit 版本:", connect.__version__) print("PyProj 版本:", pyproj.__version__) print("安装验证成功!") ``` 运行测试: ```bash python test_dronekit.py # 预期输出版本信息 ``` #### 关键问题解决原理 1. **虚拟环境绕过 PEP 668**: ```mermaid graph LR A[系统Python] --> B[受PEP668保护] C[虚拟环境] --> D[自由安装] ``` 2. **SSH 认证替代密码**: - GitHub 自 2021 年 8 月起[禁用密码认证](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/) - SSH 密钥提供更安全的认证方式 3. **树莓派特定优化**: - 使用 `piwheels.org` 预编译包加速安装 - 固定 numpy 版本避免兼容问题 #### 备用方案:使用 Docker(如果仍遇到问题) ```dockerfile # Dockerfile FROM python:3.11-slim-bookworm RUN apt update && apt install -y \ libgeos-dev \ libproj-dev \ build-essential RUN python -m venv /opt/venv ENV PATH="/opt/venv/bin:$PATH" RUN pip install dronekit pyproj ``` 构建和运行: ```bash docker build -t dronekit-rpi . docker run -it --rm dronekit-rpi python -c "from dronekit import connect; print(connect.__version__)" ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值