본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

인공지능/PYTHON

python -m venv 실행 시 subprocess.py 및 communicate 오류 해결

아나콘다와 venv가 충돌하거나, `pip`를 설치하는 과정에서 무한 로딩이 걸릴 수 있다.

경로 충돌이거나... 아까는 순정파이썬을 썼는데 지금은 아나콘다가 실행됬거나... 경로가 여러개 나와서 컴퓨터가 어떤 파이썬을 쓸지 헷갈리거나...

 

가장 깔끔한 해결방법을 정리해봤다.

PS D:\study\sk_playdata\study_ai\python_workspace\day3_python_collection> python -m venv venv
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\playdata2\anaconda3\Lib\venv\__main__.py", line 6, in <module>
    main()
    ~~~~^^
  File "C:\Users\playdata2\anaconda3\Lib\venv\__init__.py", line 677, in main
    builder.create(d)
    ~~~~~~~~~~~~~~^^^
  File "C:\Users\playdata2\anaconda3\Lib\venv\__init__.py", line 82, in create
    self._setup_pip(context)
    ~~~~~~~~~~~~~~~^^^^^^^^^
  File "C:\Users\playdata2\anaconda3\Lib\venv\__init__.py", line 446, in _setup_pip
    self._call_new_python(context, '-m', 'ensurepip', '--upgrade',
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                          '--default-pip', stderr=subprocess.STDOUT)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\playdata2\anaconda3\Lib\venv\__init__.py", line 442, in _call_new_python
    subprocess.check_output(args, **kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "C:\Users\playdata2\anaconda3\Lib\subprocess.py", line 472, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
               **kwargs).stdout
               ^^^^^^^^^
  File "C:\Users\playdata2\anaconda3\Lib\subprocess.py", line 556, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
                     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\playdata2\anaconda3\Lib\subprocess.py", line 1209, in communicate
    stdout = self.stdout.read()
KeyboardInterrupt

 

 

 

 

 

 


1. 아나콘다는 이미 자체적으로 강력한 가상환경 관리 기능을 가지고 있어서,

굳이 `python -m venv`를 쓰지 않는 게 더 안전하다. 아나콘다로 만들어보자.

conda create -n myenv python=3.11

 

 

 

 

바로 해결됬긴했지만.. 약간 무겁다..ㅜ

현재 상태에서 굳이 필요없는 짓이란 생각이 든다. venv로 절대 안되는걸까?
아나콘다 환경에서 `venv`를 만들 때 `pip` 설치 과정에서 멈추는 경우가 많다고 하니 pip설치를 건너뛰고 만들어보자.

python -m venv venv --without-pip

 

 

 

 

주의) 가상환경으로 바로 넘어가지 않을 경우,

헷갈리지말고 conda 명령어가 아닌 아래의 경로를 복붙

.\venv\Scripts\Activate.ps1