개요

회사 내부 서버에 연결하여 각 프로젝트를 빌드하던 도중 문제가 발생했다. (구체적인 오류 내용은 이하와 같다.) 프로젝트를 빌드하기 위한 버전은 파이썬 2점대인데 현재 내 pc에 설치되어있는 파이썬 버전은 3점대였기 때문이다. 그러나 나는 ai 개발할 때 파이썬 3점대를 사용해야 했기 때문에 두 버전 모두 필요했다. 차장님께 여쭤보니 파이썬 2점대와 3점대를 동시 설치 -> 파이썬 2점대가 나오는 명령어와 3점대가 나오는 명령어를 별도 설정하면 된다고 하셨다. 고민의 시작...

Traceback (most recent call last):
  File "C:\Workspace\scratch-blocks\build.py", line 38, in <module>
    raise Exception("Blockly build only compatible with Python 2.x.\n"
Exception: Blockly build only compatible with Python 2.x.
You are using: 3.12.0 (tags/v3.12.0:0fb18b0, Oct  2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)]

 


 

1. 파이썬 2점대와 3점대를 모두 설치

파이썬 공식 홈페이지를 들어가 설치하면 된다. 어렵지 않다! 내가 설치해야 하는 버전은 빌드용 2.7.18이었고, ai 개발용 3.12였다. 설치 후 cmd 창을 열어 cmd의 루트 경로에서 버전을 확인하면 다음과 같이 나온다. 즉 현재 파이썬 2점대를 인식하지 못하므로, 설치만 하고 빌드를 하면 위 오류가 동일하게 발생한다. 따라서 파이썬 2점대를 인식할 수 있는 명령어를 등록해주어야 한다. 

python --version  // 결과 : Python 3.12.0
py --version  // 결과 : Python 3.12.0

 


 

2. 파이썬 명령어 등록 및 확인

등록해야 하는 명령어는 파이썬 2점대는 "python", 3점대는 "py"로 정해져 있었다. (따라서 후자는 별도로 명령어를 등록할 필요가 없었다.) 왜냐하면 빌드할 때 npm이 package.json을 방문하여 빌드 명령어를 찾는데, 그곳에 "python"으로 2점대의 파이썬을 실행시키기 때문이다. package.json은 PM을 제외하고는 수정할 수 없으므로 그곳에 적힌 명령어로 나도 맞추어야 했다.

 


 

파이썬 2점대 설치 경로 알아내기

파이썬 2점대의 설치 경로를 알아내야 하는데, 이는 "python" 명령어를 실행하면 해당 설치 경로에 있는 파일이 동작하도록 만들기 위해서다. 참고 자료에서도 그렇고, 나도 C 밑에 바로 저장되어 있었으므로 " C:\Python2718" 이라고 볼 수 있다. 

파이썬 설치 경로 확인

 


 

파이썬 2점대 링크 파일 생성
  • cmd를 관리자 권한으로 실행
    : 매우 중요하다!!!!!!! 관리자 권한으로 실행하지 않으면 '액세스가 거부되었습니다.' 하는 오류가 발생한다. 관리자여야 링크 생성할 수 있는 '액세스'가 있음을 기억하자!
  • 파이썬 2점대 명령어를 실행할 위치로 이동
    : 매우 중요하다!!!!!!! 나는 빌드하는 프로젝트 위치 ( ex. C://Workspace/gui) 로 cmd를 이동하지 않고, 계속 루트 경로에서 명령어를 생성하여 빌드할 때 명령어가 정상적으로 실행되지 않았다. 절대 꼭 까먹지 말고 위치 이동!!!!
  • mklink C:\Windows\python.exe [파이썬 2점대 설치경로]  실행
    : 링크를 만들다 | Windows 하에서 실행할 명령어(python) 입력 | 파이썬 2점대 설치 경로 라는 의미이다. 내가 실행했던 구체적인 코드와 결과는 다음과 같다. 
mklink C:\Windows\python.exe C:\Python27\python.exe
// 실행 결과 : C:\Windows\python2.exe <<===>> C:\Python2718\python.exe에 대한 기호화된 링크를 만들었습니다.

 


 

파이썬 명령어로 버전 확인
python --version // 실행 결과 : Python 2.7.18

 


 

마무리

위 과정을 끝내고 빌드를 다시 했더니 정상적으로 빌드가 가능했고, localhost:port번호로 자사 제품에 접속할 수 있었다. 사실 위와 같은 과정으로 pip 명령어 설정도 가능한데, 오늘의 글에서는 생략한다! 귀찮으니까 

2023.10.19 4번째 완료

 

 

개요

어제 회사에서 향후 주어질 업무에 대해 차장님과 논의했다. 아마 나는 자사 제품 기능을 Node.js 로 일부 개발 + AI 개발하게 될 것 같다. 일단 너무 좋았다! 백엔드 + AI 조합 ㅎㅎ 그래서 본격적인 업무 시작 전 pc 환경설정을 하는 과정에서 다른 팀원 분들과 Node.js, npm 버전을 맞추어야 했고, 목표 버전은 Node.js는 v16.20.0, npm은 9.6.4이다. 이 때 npm은 Node Package Manager의 약자로 자바스크립트 코드 언어를 위한 노드 패키지를 관리해 주는 툴이다. 

 


 

1. Node.js : cmd를 이용하여 업데이트 하는 방법

npm을 이용
  • n 패키지를 이용한다. 구체적인 코드는 다음과 같다. 
npm install -g n  //global로 설치해 주어야 Node Vesion을 root에서 관리할 수 있다.

n stable  // 안정 버전 설치
n latest  //  최신 버전 설치
n lts  // lts 버전 설치
n x.x.x  // 특정 버전 설치 ( x.x.x 버전 )
n prune  // 이전 버전들 삭제해 주는 명령어

 

nvm( Node Vesion Manager )을 이용
  • nvm 자체를 이용한다. 구체적인 코드는 다음과 같다. 
nvm install [ version ]  // 특정 버전 설치
nvm install node           // 최신 버전 설치
nvm uninstall [ version ]  // 이전 버전을 삭제하는 명령어
nvm alias default [version]  // 여러 버전을 설치하고 필요한 환경으로 지정해 주는 명령어

 


 

2. npm : cmd를 이용하여 업데이트 하는 방법

위에서 Node.js 버전 업데이트가 npm을 이용하는 것이 있어서 사실 나는 npm 버전부터 업데이트 하려고 했다. 구체적인 코드는 다음과 같다.

npm install -g npm@9.6.4   // 특정 버전 설치 ( x.x.x 버전 )
npm install -g npm@latest  // 최신 버전 설치

 

꼬리 문제 

npm이 정상적으로 업데이트 되지 않았다. 검색하고, 생각해봐도 합리적인 원인을 찾기 어려웠다. 그 때 차장님께서 그냥 공식홈페이지 가서 설치하는 것이 빠르다고 조언을 해주셨다...ㅋㅋㅋㅋㅋㅋ 그래서 공홈 가서 릴리즈된 버전을 살펴보니 내가 설치하려 했던 npm 버전이 현재 내 Node.js 버전과 맞지 않았고, 그래서 설치가 되지 않았던 것이었다. 따라서 Node.js는 16.20.2 로 바꿔서 , npm은 9.6.4로 그대로 설치하기로 했다.  

 


 

3. 공식 홈페이지를 통한 업데이트

Node.js 공식 홈페이지로 들어가 OS와 버전을 확인하고 다운로드 받으면 된다. 다만, Node.js 를 설치하면 그에 맞는 npm이 자동 설치되므로 나중에 cmd로 npm 버전을 업데이트 해주어야 한다. 

 


 

4. 업데이트 후 버전 확인

버전 확인 결과

 


 

참고 자료

https://aiday.tistory.com/63

2023.10.18 3번째 완료

 

개요

파이썬 + 이것이 코딩테스트다(파이썬편)으로 PCCP(프로그래머스 코딩전문역량인증시험) 준비를 시작했다. 파이썬 기본 문법-입출력 부분을 공부하던 중 책처럼 입출력이 되지 않았다..! 분명히 이전 내용들은 vscode 기준으로 ctrl+alt+N을 누르면 실행되어 콘솔창에 결과가 출력되었는데 입출력 부분은 실행되기만 하고 결과는 출력되지 않았다. 고민의 시작... 

 


1. launch.json 파일 생성 + Debug 모드로 실행 -> 입출력 텍스트 파일로 자동 조작

그냥 실행하면 아무 것도 출력되지 않는 문제부터 해결해야 겠다고 생각했다. 뭐라도 출력되어야 해결을 하든 말든 하지! 구글링 해보니 알고리즘 문제를 풀 때는 입출력이 필수이므로 단순 실행이 아닌 디버그 모드로 실행해야 하고, 이를 위해 launch.json 파일을 만들어야 하는 것을 알았다. 

  • 벌레 + 재생 표시 있는 버튼을 클릭하면 왼쪽 그림과 같은 창이 뜨고 자연스럽게 launch.json 파일을 만들 수 있다.
  • 일단 launch.json 파일에 아무 것도 입력하지 않고, 다시 벌레 + 재생 표시 있는 버튼을 클릭해보면 디버그 모드로 실행할 수 있는 빨간색 동그라미 버튼이 뜬다. 누르면 디버그 모드로 실행된다.
꼬리 문제 1

- 콘솔창에서만 입출력을 받는다면 테스트를 해보기 위해 실행할 때마다 입력값을 넣어주어야 한다. 번거롭다! 
- 구글링 해보니 알고리즘 공부 + 코테 준비를 하는 다수가 입력을 input.txt로 받고, 출력을 output.txt로 자동으로 되도록 환경설정 해놓고 있었다. 아무래도 나도 하는게 효율적이겠군.. 다시 고민의 시작... 

 


2. launch.json 파일 설정 -> redirection 되지 않는 문제

구글링 해보니 입출력을 txt 파일로 자동화하기 위한 최초 세팅은 launch.json 파일 설정이었다. 핵심 코드는 다음과 같다. input.txt에서 값을 넣고(<), output.txt로 값을 빼라는(>) 의미이다.

"args": ["<", "input.txt", ">", "output.txt" ]

위 코드를 launch.json 파일에 추가해준 최종 코드는 다음과 같다.

{ 
  "version": "0.2.0", 
  "configurations": [ 
  { 
    "name": "Python: Aktuelle Datei", 
    "type": "python", 
    "request": "launch", 
    "program": "${file}", 
    "console": "integratedTerminal", 
    "args": ["<", "input.txt", ">", "output.txt" ] 
 } 
 ] 
}

아 참고로 input.txt, output.txt 위치는 제일 바깥쪽(.vscode 와 동등한 준위)이다. 왼쪽 사진과 같은 위치에 넣으면 된다.

 

 

 

 

 

 

 

꼬리 문제 2

- 위와 같이 설정 후 디버그 모드로 실행하니 아래와 같은 오류(ParserError + RedirectionNotSupported)가 발생했다. 
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported

- 구글링 해보니 vscode는 기본으로 powershell로 디버그 모드를 실행하여 발생하는 문제였다. json 파일에 추가한 명령어는 cmd 명령어이기 때문이다. 즉, 디버그 모드를 cmd로 실행해야 문제가 해결된다. 그 설정을 어떻게 바꾸지.. 다시 고민의 시작...

 


3. vscode settings + settings.json 설정 변경 -> cmd가 시스템에서 인식되지 않는 문제 

vscode settings 설정 변경

구글링 해보니 디버그 모드를 실행했을 때 powershell이 아닌 cmd로 연결되게 하려면 첫 번째로 vscode settings 설정을 변경해야했다. 

설정으로 들어가 shell을 검색한 후, 터미널의 Default Profile: Windows를 Command Prompt (=cmd)로 변경한다.

 

settings.json 설정 변경

두 번째로 setting.json 설정을 변경한다. setting.json은 launch.json을 생성할 때 같이 만들어지는 .vscode 폴더 하위에 있는 파일이다. setting.json 파일에 아래와 같은 핵심 코드를 추가한다. 아래 코드는 나의 cmd 경로를 넣어야 하는데, cmd 경로는 Default Profile: Windows를 설정할 때 버튼에 마우스를 올리면 알 수 있다. 

"${env:windir}\\System32\\cmd.exe"
꼬리 문제 3 

- 위와 같이 설정을 변경한 후, 디버그 모드로 실행했더니 아래와 같은 오류가 발생했다. 
"'cmd' is not recognized as an internal or external command"

- gpt에 물어보니, 'cmd' 콘솔 명령어를 실행하려고 시도했으나 'cmd'가 시스템에서 인식되지 않을 때 발생하는 문제라고 했다. cmd를 시스템에서 어떻게 인식되도록 해주지... 다시 고민의 시작...

 


3. 제어판 - 시스템 - 고급 시스템 설정 - 환경변수 설정 -> 모든 문제 해결!

gpt가 말하는 가장 기본적인 cmd 인식 방법은 시스템 환경 변수 설정이라고 했다. 제어판 - 시스템 - 고급 시스템 설정 - 환경변수 설정 - Path + 편집 클릭 - 새로 만들기 클릭한 후 아래 사진처럼 추가한다. 이 때 'C:\Windows\System32' 는 나의 cmd 기본 경로이다.

 위처럼 설정한 후 디버그 모드로 실행했더니 input.txt에 입력한 데이터를 파이썬 코드에 입력 받아 실행하여 output.txt로 결과물을 자동으로 출력하는 것을 확인할 수 있었다. 231016 1번째


참고 자료 출처

https://chat.openai.com/

https://velog.io/@hylee/vscode-input.txt-output.txt%EB%A1%9C-%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%EC%85%98-%EC%95%88%EB%90%A0%EB%95%8C

 

vscode input.txt, output.txt로 리다이렉션 안될때

평소에 알고리즘 문제 풀때 입력을 복사 받아서 input.txt에 넣고 문제를 푸는데 갑자기 input.txt, output.txt로 리다이렉션 되던게 터미널로 나오는 문제를 만났습니다.vscode의 설정이나 launch.json 부분

velog.io

https://hbyun.tistory.com/28

 

[파이썬] vscode 에서 input.txt output.txt 로 입력값 결과값 넣기

이번에 자취를 시작하면서 노트북을 하나 사자라는 마음을 먹고 노트북을 하나 샀다 이전 PC의 환경처럼 세팅해주고자.. 다시 input과 output 도 자동으로 txt로 받아 실행해주는 세팅을 해주려 하는

hbyun.tistory.com

https://www.acmicpc.net/board/view/52485

 

글 읽기 - vs code에서 파일로 input 받는법 아시는 분 계신가요?

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net


https://seong6496.tistory.com/408

 

[Vscode] 파이썬(Python) input함수(키보드 입력) 활성화

vscode에서 파이썬 input 실행하는 방법입니다. 이걸 굳이 왜 쓰냐고 물으신다면 그냥 하면 안되기 때문입니다. vscode의 디버그 콘솔은 표준 입력을 지원하지 않아서 input() 함수가 포함된 파이썬 코

seong6496.tistory.com

https://gwpaeng.tistory.com/19

 

vscode에서 txt파일로 입출력 받기

하려는 것 input.txt에 입력값을 넣고 코드를 돌리면 output.txt에 결과값이 출력이 되는 것 ​ ​ launch.json 들어가는 법: 상단 debug에서 open configurations 들어가면 된다. 1. launch.json 바꾸기 + 그냥 terminal

gwpaeng.tistory.com


https://stackoverflow.com/questions/56480444/cant-run-python-programs-in-vs-code-cmd-is-not-recognized-as-an

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts