国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

yourphp企業(yè)網(wǎng)站管理系統(tǒng)360優(yōu)化大師舊版本

yourphp企業(yè)網(wǎng)站管理系統(tǒng),360優(yōu)化大師舊版本,視頻網(wǎng)站 怎么做,做定制旅游最好的網(wǎng)站在機(jī)器人操作系統(tǒng)(ROS)的開(kāi)發(fā)過(guò)程中,構(gòu)建工作空間時(shí)遇到各種依賴性問(wèn)題是常見(jiàn)的挑戰(zhàn)之一。尤其是在多Python環(huán)境共存的情況下,環(huán)境變量的沖突往往導(dǎo)致諸如缺少empy模塊等錯(cuò)誤。本文將詳細(xì)介紹在ROS Noetic與Anaconda Python環(huán)境共…

在機(jī)器人操作系統(tǒng)(ROS)的開(kāi)發(fā)過(guò)程中,構(gòu)建工作空間時(shí)遇到各種依賴性問(wèn)題是常見(jiàn)的挑戰(zhàn)之一。尤其是在多Python環(huán)境共存的情況下,環(huán)境變量的沖突往往導(dǎo)致諸如缺少empy模塊等錯(cuò)誤。本文將詳細(xì)介紹在ROS Noetic與Anaconda Python環(huán)境共存的情況下,如何通過(guò)調(diào)整環(huán)境變量?jī)?yōu)先級(jí)來(lái)解決Catkin構(gòu)建失敗的問(wèn)題。

一、引言

隨著機(jī)器人技術(shù)的發(fā)展,ROS(Robot Operating System)已成為機(jī)器人軟件開(kāi)發(fā)的標(biāo)準(zhǔn)框架。然而,開(kāi)發(fā)過(guò)程中涉及多種工具和依賴庫(kù),尤其是Python環(huán)境的配置,常常成為潛在的障礙。特別是在系統(tǒng)Python與Anaconda等第三方Python環(huán)境共存時(shí),環(huán)境變量的優(yōu)先級(jí)可能導(dǎo)致ROS無(wú)法正確找到所需的模塊,如empy,從而導(dǎo)致Catkin構(gòu)建失敗。
本文將以一個(gè)實(shí)際案例為基礎(chǔ),深入探討在環(huán)境沖突情況下如何調(diào)整環(huán)境變量?jī)?yōu)先級(jí),確保ROS的正常構(gòu)建與運(yùn)行。通過(guò)系統(tǒng)化的步驟和詳盡的解釋,幫助開(kāi)發(fā)者快速定位并解決類(lèi)似問(wèn)題,提升開(kāi)發(fā)效率

二、問(wèn)題描述

在嘗試使用Catkin構(gòu)建ROS工作空間時(shí),系統(tǒng)報(bào)出如下錯(cuò)誤信息:

sunshine@sunshine:~/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws$ catkin_make
Base path: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws
Source space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/src
Build space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build
Devel space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/devel
Install space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/install
####
#### Running command: "cmake /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/src -DCATKIN_DEVEL_PREFIX=/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/devel -DCMAKE_INSTALL_PREFIX=/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/install -G Unix Makefiles" in "/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/noetic
-- This workspace overlays: /opt/ros/noetic
-- Using PYTHON_EXECUTABLE: /home/sunshine/SoftWare/Anaconda/bin/python3
-- Using Debian Python package layout
-- Could NOT find PY_em (missing: PY_EM) 
CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):Unable to find either executable 'empy' or Python module 'em'...  tryinstalling the package 'python3-empy'
Call Stack (most recent call first):/opt/ros/noetic/share/catkin/cmake/all.cmake:164 (include)/opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:20 (include)CMakeLists.txt:4 (find_package)-- Configuring incomplete, errors occurred!
See also "/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build/CMakeFiles/CMakeOutput.log".
Invoking "cmake" failed

經(jīng)過(guò)檢查,系統(tǒng)中并未找到empy模塊,且即便通過(guò)apt-get安裝了python3-empy,問(wèn)題依舊存在。進(jìn)一步排查發(fā)現(xiàn),當(dāng)前使用的是Anaconda的Python環(huán)境,而ROS Noetic期望使用系統(tǒng)自帶的Python環(huán)境。這導(dǎo)致python3-empy安裝在系統(tǒng)Python下,而Anaconda的Python環(huán)境無(wú)法識(shí)別該模塊,進(jìn)而引發(fā)構(gòu)建失敗

三 解決方案

1、確認(rèn)當(dāng)前Python環(huán)境

首先,確認(rèn)當(dāng)前系統(tǒng)使用的Python環(huán)境以及empy模塊的安裝情況

which python3
python3 -c "import em"

如果which python3輸出的是Anaconda的路徑(如/home/sunshine/SoftWare/Anaconda/bin/python3),且import em報(bào)錯(cuò)ModuleNotFoundError: No module named ‘em’,則說(shuō)明當(dāng)前Python環(huán)境無(wú)法識(shí)別empy模塊

2、安裝empy模塊

由于ROS Noetic與系統(tǒng)Python環(huán)境高度集成,推薦使用系統(tǒng)包管理器安裝empy

sudo apt-get update
sudo apt-get install python3-empy

安裝完成后,驗(yàn)證安裝是否成功:

which empy
python3 -c "import em"

理想情況下,which empy應(yīng)返回/usr/bin/empy,且import em不應(yīng)再報(bào)錯(cuò)

三 優(yōu)先使用系統(tǒng)的Python環(huán)境

為了確保ROS使用系統(tǒng)的Python環(huán)境,可以通過(guò)臨時(shí)調(diào)整PATH環(huán)境變量,使系統(tǒng)的Python和empy優(yōu)先于Anaconda的環(huán)境。
在當(dāng)前終端會(huì)話中,運(yùn)行以下命令:

export PATH=/usr/bin:$PATH

解釋:該命令將系統(tǒng)的/usr/bin目錄添加到PATH的最前面,確保系統(tǒng)的Python和empy被優(yōu)先調(diào)用。

驗(yàn)證調(diào)整是否生效

which python3
# 應(yīng)輸出 /usr/bin/python3which empy
# 應(yīng)輸出 /usr/bin/empypython3 -c "import em"
# 無(wú)錯(cuò)誤輸出

四、重新構(gòu)建Catkin工作空間

(base) sunshine@sunshine:~/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws$ export PATH=/usr/bin:$PATH
(base) sunshine@sunshine:~/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws$ catkin_make
Base path: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws
Source space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/src
Build space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build
Devel space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/devel
Install space: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/install
####
#### Running command: "cmake /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/src -DCATKIN_DEVEL_PREFIX=/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/devel -DCMAKE_INSTALL_PREFIX=/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/install -G Unix Makefiles" in "/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build"
####
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/noetic
-- This workspace overlays: /opt/ros/noetic
-- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3") 
-- Using PYTHON_EXECUTABLE: /usr/bin/python3
-- Using Debian Python package layout
-- Found PY_em: /usr/lib/python3/dist-packages/em.py  
-- Using empy: /usr/lib/python3/dist-packages/em.py
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build/test_results
-- Forcing gtest/gmock from source, though one was otherwise available.
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python3 (found version "3.8.10") 
-- Found Threads: TRUE  
-- Using Python nosetests: /usr/bin/nosetests3
-- catkin 0.8.10
-- BUILD_SHARED_LIBS is on
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build
####
#### Running command: "make -j24 -l24" in "/home/sunshine/Instrument/WitHighModbus_HWT9073485/ROS/wit/wit_ros_ws/build"
####

構(gòu)建完成!!

四 長(zhǎng)期解決方案

如果頻繁需要在Anaconda和系統(tǒng)Python環(huán)境之間切換,建議采用以下長(zhǎng)期解決方案

1、創(chuàng)建獨(dú)立的終端會(huì)話

在需要構(gòu)建ROS工作空間時(shí),開(kāi)啟一個(gè)不激活A(yù)naconda環(huán)境的新終端,確保使用系統(tǒng)的Python環(huán)境

2、 使用虛擬環(huán)境

為ROS創(chuàng)建一個(gè)專(zhuān)用的Python虛擬環(huán)境,隔離其依賴:

python3 -m venv ros_env
source ros_env/bin/activate
pip install empy

在此環(huán)境中構(gòu)建ROS工作空間,避免與其他Python項(xiàng)目的依賴沖突。

3、修改Anaconda的激活腳本

在激活A(yù)naconda環(huán)境后,手動(dòng)將系統(tǒng)的/usr/bin添加回PATH的優(yōu)先位置

conda activate your_env_name
export PATH=/usr/bin:$PATH

這樣可以確保在使用Anaconda環(huán)境的同時(shí),系統(tǒng)的Python和empy依然優(yōu)先可用。

五、總結(jié)

在多Python環(huán)境共存的系統(tǒng)中,確保ROS使用系統(tǒng)的Python環(huán)境是避免依賴性問(wèn)題的關(guān)鍵。通過(guò)臨時(shí)調(diào)整PATH環(huán)境變量,可以快速解決缺少empy模塊導(dǎo)致的Catkin構(gòu)建失敗問(wèn)題。然而,為了長(zhǎng)期穩(wěn)定地開(kāi)發(fā)ROS項(xiàng)目,建議采用獨(dú)立的終端會(huì)話或虛擬環(huán)境,確保ROS與其他Python項(xiàng)目的依賴隔離。這不僅提升了開(kāi)發(fā)效率,也減少了潛在的兼容性問(wèn)題。

http://m.aloenet.com.cn/news/38587.html

相關(guān)文章:

  • 為什么網(wǎng)站需要維護(hù)怎樣免費(fèi)推廣自己的網(wǎng)站
  • 蘇州公司辦理深圳seo論壇
  • 有趣網(wǎng)站開(kāi)發(fā)手機(jī)百度助手
  • 游戲網(wǎng)頁(yè)版谷歌廣告優(yōu)化師
  • 網(wǎng)上做涉黃網(wǎng)站怎么判北京網(wǎng)聘咨詢有限公司
  • 網(wǎng)站首頁(yè)輪播百度搜索指數(shù)的數(shù)據(jù)來(lái)源
  • 國(guó)際網(wǎng)站賣(mài)東西怎么做新手怎么做電商
  • wordpress網(wǎng)站360搜索收錄排行榜
  • 中國(guó)機(jī)械加工外協(xié)網(wǎng)最新訂單seo優(yōu)化方法有哪些
  • 案例學(xué) 網(wǎng)頁(yè)設(shè)計(jì)與網(wǎng)站建設(shè)做網(wǎng)站流程
  • 網(wǎng)站開(kāi)發(fā)哪好軟文代寫(xiě)公司
  • 一個(gè)教做網(wǎng)頁(yè)的網(wǎng)站網(wǎng)站如何推廣運(yùn)營(yíng)
  • 重慶網(wǎng)站seo方法網(wǎng)站優(yōu)化技巧
  • 網(wǎng)站建設(shè)與制作這個(gè)行業(yè)怎么樣呢百度廣告怎么投放
  • 信息技術(shù)八年級(jí)上冊(cè)網(wǎng)站建設(shè)鄭州seo實(shí)戰(zhàn)培訓(xùn)
  • 甘肅省建設(shè)廳執(zhí)業(yè)資格注冊(cè)中心網(wǎng)站拉新推廣
  • 如何把自己做的網(wǎng)站windows優(yōu)化大師怎么使用
  • 做策劃的人經(jīng)常瀏覽的網(wǎng)站百度網(wǎng)址大全首頁(yè)鏈接
  • 凡科自助建站靠譜嗎百度推廣獲客
  • 做網(wǎng)站是個(gè)什么行業(yè)安卓?jī)?yōu)化清理大師
  • 杭州網(wǎng)站設(shè)計(jì)公司聯(lián)系億企邦成都全網(wǎng)推廣哪家專(zhuān)業(yè)
  • 政府網(wǎng)站設(shè)計(jì)關(guān)鍵詞愛(ài)站網(wǎng)
  • 網(wǎng)件路由器設(shè)置網(wǎng)址蘇州百度搜索排名優(yōu)化
  • 我國(guó)政府信息門(mén)戶網(wǎng)站建設(shè)研究seo排名優(yōu)化技術(shù)
  • 網(wǎng)站建設(shè)品牌好app拉新推廣平臺(tái)
  • 手機(jī)訪問(wèn)asp網(wǎng)站福州百度代理
  • 做網(wǎng)站什么前端框架方便b2b和b2c是什么意思
  • 贛州 做網(wǎng)站seo優(yōu)化總結(jié)
  • 做網(wǎng)站的詐騙公司360搜索引擎下載
  • 設(shè)計(jì)風(fēng)格網(wǎng)站欣賞怎么創(chuàng)建網(wǎng)站快捷方式到桌面