[ns-3 혼공로그] #05 - 파이썬 ns-3 환경 설정하기

Scope.H·2024년 1월 3일
0

ns-3 혼공로그

목록 보기
5/5

지난 포스트에서 ns-3를 설치했다. 이번에는 ns-3에서 파이썬 사용을 위한 환경 설정을 해봤다.
ns-3는 기본적으로 C++ 개발을 전제로 하여 만들어진 툴이므로 C++로 코드를 작성했을 때 제일 효율이 좋지만, 파이썬을 이용하면 좀 더 이해하기 쉬운 코드 작성이 가능하다는 장점이 있다.

하지만, Pylance 등에서 ns-3에 대한 지원을 하지 않기 때문에 오히려 불편할 수 있다.

사전 패키지 설치

ns-3에서 Python 개발을 하기 위해서는 pip를 통한 cppyy 2.4.2와 bazaar 패키지가 필요하다.
우분투에서는 Python과 Python PIP를 따로 제공하기 때문에 pip도 설치한다.

정리

  • pip - 파이썬 페키지를 설치하기 위해 필요
  • bzr - 파이썬 바인딩을 활성화시키기 위해 필요
  • cppyy==2.4.2 - ns-3에 있는 C++ 모듈 및 C++과의 호환성을 위해 필요

먼저 apt를 이용해 pip와 bzr을 설치해 준다.

$ sudo apt install python3-pip bzr

그런 다음 pip를 이용해 cppyy 2.4.2를 설치한다. ns는 2.4.2 이하 버전을 설치할 것을 안내하고 있다.

$ pip3 install --user cppyy==2.4.2

테스트

이제 설치가 완료되었으니, ns-3에서 제공하는 파이썬 예제 파일(first.py)를 실행해본다.

$ ./waf --pyrun examples/tutorial/first.py

Waf에서 pyrun 옵션을 주면 된다.

내친 김에 아래 코드도 작성하여 테스트해보았다.

import ns.core
import sys

def LOG_UNCOND(msg: str):
    while True:
        print(msg, file=sys.stderr)
        if False: continue
        break

LOG_UNCOND("Hello Simulator")

마무리

ns-3에서 파이썬을 사용하기 위한 환경 설정을 해보았다.
파이썬을 사용할 수 있는 건 좋은 일이지만, 포스트 첫머리에도 써둔 것처럼 Pylance 등의 인텔리센스가 작동하지 않는다는 문제가 있어, 오히려 C++을 쓰는 쪽이 더 편할 수도 있다.

profile
개발자이고 싶은 미니 코딩쟁이... TIL 글을 주로 올립니다.

0개의 댓글