pyrealsense (realsense-sdk python wrapper) 를 통해 make 와 같이 빌드시스템으로부터 설치되는 python 패키지를 가상환경에서 인식되도록 하는 좋은 예를 생각해볼 수 있다.

문서(참고1) 에 따르면, librealsense 의 make 결과물 중 python 이 사용할 수 있는 파일은

  1. python2의 경우, /usr/local/lib/librealsense2.so, /usr/local/lib/pyrealsense2.so,
  2. python3 의 경우, /usr/local/lib/python<3.x>/pyrealsens2/pyrealsense2.cpython-<3.x(e.g.3.6)>m-<arm(e.g.aarch64)>-linux-gnueabihf.so (참고1)

임을 유추할 수 있고, "설치" 라는 행위가 실행파일을 적절한 위치에 복사해주는 것일 뿐이라는 점을 생각해 보았을 때 (참고2) 가상 환경이라면 이 파일들을 소프트링크해 주면 정상적으로 작동할 것이라고 예상할 수 있다.

나의 경우이다.

(가상환경을 사용하지 않은) python3 에서 잘 실행되는 상태이다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e04d5fc5-b8e0-4eb1-b16a-de4cb756281e/Untitled.png

<aside> 💡 (python3-dev 만 깔려 있어서인지, 정확한 원인은 알지 못하지만) /usr/local/lib/python2.7 안에는 아무 파일도 들어있지 않았고, 그 결과 python2 에서는 실행되지 않았다.

</aside>

librealsense 관련 패키지가 python3.6 폴더 안에 들어 있었다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d9038ecc-586a-45ec-9663-233aa893f419/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/89a35f66-f9d9-4baa-be9b-01199d2a10b9/Untitled.png

여기에 들어있는 소프트링크 파일을 가상환경에 소프트링크 해주면 가상환경에서 librealsense 패키지가 잘 동작할 것이라고 생각할 수 있다.


from

  1. deer.5. [entry] title: pip 명령을 통해 설치되는 파이썬 패키지는 명령어(sudo -H, pip -U --user 등)에 따라 어느 경로에 설치되는지가 다르게 결정된다.