본문 바로가기
컴퓨터이야기/파이썬프로그래밍

Introduction to Programming in Python(파이썬을 이용한 컴퓨터 과학 입문:이공계를 위한 프로그래밍, 자료구조, 알고리즘) 1.

by Saltycrocodile 2025. 2. 16.

 

 

이 책은 자체 라이브러리를 설치해야한다. stdio 같은 모듈을 사용하는데 2020년에 구매한 책이라 다시 공부하려고 하니 뭔가 라이브러리 충돌로 간단한 예제도 실행되지 않는다. 다시 introcs-1.0 파일을 https://github.com/gilbutITbook/006793 

 

GitHub - gilbutITbook/006793: <파이썬을 이용한 컴퓨터 과학 입문> 소스 코드

<파이썬을 이용한 컴퓨터 과학 입문> 소스 코드. Contribute to gilbutITbook/006793 development by creating an account on GitHub.

github.com

 

여기서 다운로드한 다음 압축을 풀어준 후 C드라이브에 넣어준다.

 

그 다음 책에 나온대로 cd: c:\introcs-1.0 를 명령어로 하여 해당 디렉터리에 들어가서 python setup.py install 명령어를 하면 설치가 되어야하는데 아마 2025.02.16일 현재 오류메시지가 나오면서 작동하지 않을 것이다. 

 

1️⃣ 만약 예제용 라이브러리가 현재 폴더에 있고 설치하려면

pip install .

📌 현재 디렉터리(.)에서 설치하라는 의미

2️⃣ 개발 모드로 설치하고 싶다면 (setup.py develop 대체)

pip install -e .

📌 개발 모드는 패키지를 수정해도 다시 설치할 필요 없이 자동으로 반영됨

3️⃣ 패키지를 빌드하려면 (setup.py bdist_wheel 대체)

python -m pip install build python -m build

📌 이렇게 하면 dist/ 폴더에 .whl 파일이 생성되고, 이후 pip install dist/*.whl로 설치할 수 있다.

 

이중에서 pip install . 을 하면 예제가 실행되고 파이썬 프롬프트에서 import stdio를 하면 에러 없이 실행되는 것을 확인할 수 있다. 

 

 

 

왜 이렇게 해야하는지는 사실 아래 사이트에 잘 나와있다.

 

https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html

 

Paul Ganssle - Why you shouldn't invoke setup.py directly

The setup.py interface is an old convention from distutils, one that has bugs that cannot be fixed to bring it into line with modern Python packaging approaches. As a result, all direct...

blog.ganssle.io

 

 

위 내용의 Summary만 번역하면 이런 내용이다. 

 

 

  • setuptools 프로젝트는 이미 몇 년 전에 setup.py를 직접 실행하는 방식을 유지·관리하는 것을 중단했으며, distutils 또한 더 이상 사용되지 않습니다.
    즉, 현재 setup.py를 기반으로 한 시스템은 소리 없이, 또는 눈에 띄지 않는 방식으로 여러 가지 문제가 발생할 가능성이 큽니다.
  • setup.py를 직접 실행하는 방식은 의존성을 자동으로 해결하지 못합니다.
    따라서, 패키지 의존성 관리를 위해 별도의 CLI(Command Line Interface)가 필요합니다.
  • setuptools 프로젝트는 더 이상 공식적인 CLI를 제공할 계획이 없으며, 기존 인터페이스를 점진적으로 제거할 예정입니다.
    (다만, 이 과정은 오랜 시간이 걸릴 것입니다.)
  • PEP 517, PEP 518과 같은 표준 기반의 패키징 방식이 파이썬 생태계의 미래이며, 이를 원활하게 전환하기 위한 많은 개선이 이루어졌습니다.
  • 아마도 지금쯤 "setup.py가 하던 모든 작업을 대체할 올바른 방법을 리스트로 정리해 줄 것인가?"라는 기대를 하고 있을 것입니다.
    하지만 안타깝게도 정답은 "상황에 따라 다르다"입니다.
  • 지난 몇 년 동안 파이썬 패키징 시스템에서 많은 변화가 있었던 이유 중 하나는, "하나의 절대적인 방식"을 강요하는 대신, 각자의 워크플로우에 맞는 다양한 도구를 개발할 수 있도록 환경을 조성하려는 움직임이 있었기 때문입니다.
  • 이러한 표준화 작업 덕분에 새로운 패키징 도구들이 다양하게 등장했으며, 자신의 필요에 맞는 도구를 선택하는 것이 중요합니다.
  • 하지만 걱정하지 마세요!
    setup.py 명령어를 대체할 몇 가지 일반적으로 대부분의 사람들에게 적합한 간단한 추천 명령어를 알려드리겠습니다.

 

 

 

이런 식으로 나와있다. 혹시 공부하다가 막힐 경우를 대비하여 올려놓는다.