티스토리 뷰

 

Python으로 개발된 서비스를 배포할 일이 생겼다.

 

그런데 개발자가 Python 프로젝트를 아무 지식도 없이 만들어서

 

가상환경에서 작업하지 않고, 로컬 & 글로벌에서 모든 작업을 처리했다.

 

그러다보니 어떤 의존성 패키지를 썼는지 명확히 알 수가 없었다.

 

당연히 이 명령어도 쓸 수 없었다.

pip freeze > requirements.txt

다행히 파이썬에서는 프로젝트에서 사용한 의존성을 자동 추출할 수 있는 스크립트를 제공한다.

 

pipreqs라는 이름의 패키지다. pip install로 설치할 수 있다.

 

그런데 설치부터 아래와 같은 에러를 발생시킨다. 

> pip install pipreqs
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'C:\\Users\\[PC name]\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python312\\site-packages\\jedi\\third_party\\typeshed\\third_party\\2and3\\requests\\packages\\urllib3\\packages\\ssl_match_hostname\\_implementation.pyi'
HINT: This error might have occurred since this system does not have Windows Long Path support enabled. You can find information on how to enable this at https://pip.pypa.io/warnings/enable-long-paths

이것도 아래에 있는 문제와 연관성이 있는 문젠데 결론은 Python의 경로가 너무 길어서 생긴 문제이다.

 

https://pip.pypa.io/warnings/enable-long-paths에서 해결하라고 나온다.

 

페이지에 들어가보면, 아래와 같이 안내한다.

 

관리자권한으로 powershell을 켜고 아래의 명령어를 작성하고 재부팅한다.

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force

다시 pip install을 하면 설치가 정상적으로 진행된다.

> pip install pipreqs
...
Successfully installed ipython-8.12.3 jedi-0.19.1 jsonschema-4.21.1 jsonschema-specifications-2023.12.1 jupyter-client-8.6.0 nbclient-0.9.0 nbconvert-7.16.0 nbformat-5.9.2 pipreqs-0.5.0

설치가 끝났다. 그리고 두번째 문제에 봉착한다.

 

pipreqs 페이지에 가보면 사용법이 나와있다.

$ pipreqs /home/project/location
Successfully saved requirements file in /home/project/location/requirements.txt

그런데 Windows 10 에서는 위 명령어를 바로 사용할 수 없다.

 

Windows 10에서 파이썬 패키지를 사용하려면 패키지의 위치를 알아야한다.

 

파이썬 패키지들은 파이썬 경로의 /Scripts 아래에 있다. 

 

Windows 10 파이썬 경로로 구글에 검색해보면 아래와 같이 안내해준다.

c:\Users\사용자이름\AppData\Local\Programs\Python\Python310

그런데... 없다.

 

없음

 

 

Windows 10에서는 Miscrosoft Store에서 Python을 설치하기를 권장한다.

 

그런데 MS Store를 통해 Python을 설치하면 Python이 위와 같은 일반적인 위치에 저장되지 않는다.

(기억이 가물 가물한데, 경로를 지정하라는 안내도 없었던 것 같다.)

 

MS Store에서 Windows 10에 Python을 설치하는 경로 + pipreqs가 있는 스크립트 경로는 아래와 같다.

C:\Users\[PC name]\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts

 

그래서 실행은 아래와 같이 하면된다.

C:\Users\[PC name]\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts\pipreqs ./
...
INFO: Successfully saved requirements file in ./requirements.txt

requirements.txt가 정상적으로 생성된 것을 확인할 수 있다.

 

마치며

별거 아닌걸로 한참 헤멨다.

 

그리고 서비스에서 개발 언어는 이것저것 늘리고 싶지 않은데, 자꾸 추가되고 있다.

 

이에 따라서 인프라도 계속 추가되고 있는데, 이게 맞는 방향인지 모르겠다.

 

개발 언어/환경은 팀 내 개발자가 적을수록, 작게작게 가는게 좋은데

 

개발 기한, 개발자의 역량에 맞추다보니

 

이것저것 늘어나는 상황이라 관리자 입장에서는 머리가 조금 아프다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함