libboost-dev 위치 설정 :
/usr/lib/x86_64-linux-gnu
https://github.com/MPI-IS/mesh
위 깃헙 코드를 사용하기 위해 README 를 따라가다가 나중에 다시 보면 어려워할 부분이 있는거같아 기록하고자 한다.
$ BOOST_INCLUDE_DIRS=/path/to/boost/include make all
여기서 /path/to/boost/include 부분은 libboost-dev 가 설치된 부분의 경로를 적으라는 말인데 내 컴퓨터에 경우에는
/usr/lib/x86_64-linux-gnu
이었다. 어떻게 찾았냐면 인터넷을 참고하기도 했고 저 경로에서 아래의 명령어를 치면 다음과 같은 결과를 출력했었다.
$ ls | grep boost
libboost_date_time.so.1.65.1
libboost_filesystem.so.1.65.1
libboost_iostreams.so.1.65.1
libboost_locale.so.1.65.1
libboost_system.so.1.65.1
libboost_thread.so.1.65.1
따라서 정리하자면 git repository 안에서 다음의 명령어를 입력하면 된다.
$ BOOST_INCLUDE_DIRS=/usr/lib/x86_64-linux-gnu make all
근데 잘 수행하다가 다음과 같은 에러를 출력하고 자꾸 명령 수행이 중단됐다.
ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Makefile:5: recipe for target 'all' failed
make: *** [all] Error 1
(1) 이런 대충 보면 PyYAML 관련 오류인데 찾아보니 다음의 명령어로 간단히 해결되기도 하더라.
$ pip install --ignore-installed PyYAML
근데 (1) 명령어를 입력하고 다시 make all 명령어를 입력했는데도 안되는 경우가 있어서 이런 상황에서의 또다른 간단한 해결책을 제시한다. 현재 repository 에서 make 하고자 하는 Makefile 파일을 보면 다음과 같이 작성돼 있다.
# Makefile for mesh package
package_name := mesh_package
all:
@echo "\033[0;36m----- [" ${package_name} "] Installing with the interpreter `which python` (version `python --version | cut -d' ' -f2`)\033[0m"
@pip install --upgrade -r requirements.txt && pip list
@pip install --no-deps --install-option="--boost-location=$$BOOST_INCLUDE_DIRS" --verbose --no-cache-dir .
import_tests:
@echo "\033[0;33m----- [" ${package_name} "] Performing import tests\033[0m"
@PSBODY_MESH_CACHE=`mktemp -d -t mesh_package.XXXXXXXXXX` python -c "from psbody.mesh.mesh import Mesh"
@python -c "from psbody.mesh.meshviewer import MeshViewers"
@echo "\033[0;33m----- [" ${package_name} "] OK import tests\033[0m"
unit_tests:
@if test "$(USE_NOSE)" = "" ; then \
echo "\033[0;33m----- [" ${package_name} "] Running tests using unittest, no report file\033[0m" ; \
PSBODY_MESH_CACHE=`mktemp -d -t mesh_package.XXXXXXXXXX` python -m unittest -v ; \
else \
echo "\033[0;33m----- [" ${package_name} "] Running tests using nosetests\033[0m" ; \
pip install nose ; \
PSBODY_MESH_CACHE=`mktemp -d -t mesh_package.XXXXXXXXXX` nosetests -v --with-xunit; \
fi ;
tests: import_tests unit_tests
# Creating source distribution
sdist:
@echo "\033[0;33m----- [" ${package_name} "] Creating the source distribution\033[0m"
@python setup.py sdist
# Creating wheel distribution
wheel:
@echo "\033[0;33m----- [" ${package_name} "] Creating the wheel distribution\033[0m"
@pip install wheel
@python setup.py --verbose build_ext --boost-location=$$BOOST_INCLUDE_DIRS bdist_wheel
# Build documentation
documentation:
@echo "\033[0;33m----- [" ${package_name} "] Building Sphinx documentation\033[0m"
@pip install -U sphinx sphinx_bootstrap_theme
@cd doc && make html
clean:
@rm -rf build
@rm -rf dist
@rm -rf psbody_mesh.egg-info
@rm -rf *.xml
근데 여기서 all 에 대한 명령이 수행이 안되는거니까 그 부분을 보면 되는데
'all :' 부분에 다음을 보면 make all 을 통해 어떤 라이브러리를 설치하라는 건지 알 수 있다.
@pip install --upgrade -r requirements.txt && pip list
라이브러리는 requirements.txt 에 명시돼 있을 테니 해당 파일에 들어가서 에러를 일으키는 pyyaml 부분을 주석처리하고 다시 설치를 진행해보면 설치가 잘 완료되더라.
'연구 > 내 연구공간' 카테고리의 다른 글
[좌표계 변환] 좌표계 변환, 좌표 변환 개념 공부 (0) | 2022.11.14 |
---|---|
[실수] 모델 학습할때 학습이 잘 안될경우에 확인해볼 실수 리스트 (0) | 2021.12.20 |
[공부] 공학적인 의미에서 primitive 란 (0) | 2021.12.06 |
[좌표계 개념] 연구에서 사용하는 좌표계개념 정리 (0) | 2021.06.25 |
[명언] 카이스트 윤덕용 교수님의 가르침 (0) | 2021.05.14 |