ROS 시스템 은 python 패 키 지 를 실행 가능 한 파일 로 컴 파일 하 는 간단 한 절차 입 니 다.
4228 단어 python 패키지컴 파일문건
이 글 은 ROS 시스템 에서 python 을 실행 가능 한 파일 로 컴 파일 하 는 방법 을 설명 합 니 다.절차 가 비교적 간단 합 니 다.누락 되 지 않도록 엄 격 히 실행 하 십시오.
1.필수 파일 다운로드
git clone https://gitee.com/alen2020/ros_python_install_mode_files
## cmake setup.py,install.sh
cp -r cmake setup.py car_mqtt_api/
동적 인 파 라 메 터 를 사용 하려 면 install.sh 를 복사 하고 다음 과 같은 수정 을 해 야 합 니 다.(동적 인 파 라 메 터 를 사용 하려 면 다음 과 같이 무시 하 십시오)
cp install.sh car_mqtt_api/
## install.sh package_name,
package_name=
package_path=`rospack find ${package_name}`
if [ $# -eq 1 ]; then
package_path=$1
fi
# .py src , scripts , scripts
# ROS /root/ROS/catkin_ws/ ,
mkdir $package_path/src/$package_name/cfg
cp /root/ROS/catkin_ws/devel/lib/python2.7/dist-packages/$package_name/cfg/* $package_path/src/$package_name/cfg
2.디 렉 터 리 구조 개조
## ,.py scripts
ls
주 함 수 는 현재 디 렉 터 리 에 남아 있 고 호출 된 파일 은 하위 디 렉 터 리 에 있 으 며 하위 디 렉 터 리 는 이 패키지 이름과 같 습 니 다.
3.CMakelist 규칙 만 들 기(참조 관계 가 있 음)
1)현재 가방 의 CMakelist 수정
다음 내용 을 추가,그 중 addsubdirectory 는 자신의 python 파일 에 저 장 된 디 렉 터 리 에 따라 조정 합 니 다.
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
# include CMake module for Cython
include(UseCython)
add_custom_target(ReplicatePythonSourceTree ALL ${CMAKE_COMMAND} -P
${CMAKE_CURRENT_SOURCE_DIR}/cmake/ReplicatePythonSourceTree.cmake
${CMAKE_CURRENT_BINARY_DIR}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_subdirectory(src)
## ,
add_custom_target(install.sh ALL)
add_custom_command(TARGET install.sh
POST_BUILD
COMMAND /bin/sh ${PROJECT_SOURCE_DIR}/install.sh ${PROJECT_SOURCE_DIR})
)
2)scripts 디 렉 터 리 에 CMakeLists.txt 추가인용 되 는 모든 파일 을 써 야 합 니 다.마지막 에 주 함수 의 파일 이름 을 써 야 합 니 다.
##
add_subdirectory(mypackage)
cython_add_standalone_executable(1 MAIN_MODULE 1.py mypackage/2.py 1.py)
install(TARGETS 1
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
3)scripts 디 렉 터 리 의 하위 디 렉 터 리 에 CMakeLists.txt 추가인 용 된 모든 파일 은 규칙 을 추가 해 야 합 니 다.
cython_add_module(2 2.py)
set_target_properties(2
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY
${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_PYTHON_DESTINATION})
install(TARGETS 2
LIBRARY DESTINATION ${CATKIN_PACKAGE_PYTHON_DESTINATION})
。。。
4.비 인용 관계(단일 파일)두 번 쓰다
cython_add_standalone_executable(car_mqtt_api_main MAIN_MODULE car_mqtt_api_main.py car_mqtt_api_main.py)
install(TARGETS car_mqtt_api_main
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})
5.가방 인용 방법규칙 을 바 꾼 후 하위 디 렉 터 리 접 두 사 를 붙 여야 합 니 다.
from mypackage import 2
from mypackage.2 import function
6.cfg 동적 매개 변수앞에서 말 했 듯 이 하위 디 렉 터 리 는 이 노드 와 동명 이인 이 어야 합 니 다.컴 파일 후 하위 디 렉 터 리 의 이름 이 아 닌 노드 이름 으로 명명 되 기 때문에 컴 파일 이 생 성 된 실행 가능 한 파일 은 devel 또는 install 의 lib/python 2.7/dist-packages 에 넣 고 소스 코드 모드 로 실행 되면 하위 디 렉 터 리 의 cfg 파일 을 읽 습 니 다.
예 를 들 어 carmqtt_api 컴 파일 후 동적 으로 파 라 메 트릭 을 실행 할 수 있 는 프로그램 은 다음 디 렉 터 리 에 놓 습 니 다.
devel/lib/python2.7/dist-packages/mypackage/cfg
이 디 렉 터 리 에 있 는 파일 을 하위 디 렉 터 리 로 복사 해 야 합 니 다.
mkdir -p mypackage/scritps/cfg
cp */devel/lib/python2.7/dist-packages/mypackage/cfg scripts/mypackage/cfg
7.흔 한 버그모듈 을 찾 을 수 없습니다:
install/lib/python2.7/dist-packages/car_control
디 렉 터 리 에__init__.py
파일 을 놓 습 니 다.ROS 시스템 이 python 패 키 지 를 실행 가능 한 파일 로 컴 파일 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 패 키 지 를 실행 가능 한 파일 로 컴 파일 하 는 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell 스 크 립 트 자동 배치 (컴 파일) LAMP 플랫폼LAMP 는 현재 매우 유행 하 는 웹 구조 로 우 리 는 GNU/Linux 에서 다른 사람 이 포장 한 패 키 지 를 통 해 설치 할 수 있다.그러나 생산 환경 에서 우 리 는 스스로 AMP 를 맞 춤 형 으로 설...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.