본문 바로가기
error

장고(파이참) 터미널 가상환경 실행 윈도우11

by redeyes 2022. 1. 21.

 

그냥 파워쉘

(생각해보면 그간 한번도 터미널에서는 가상환경에 접속한적이 없는 듯 하다..;;)

venv 활성화 후

 

파이참 에서 장고 설치후 웹 서버는 접속이 되는데 이상하게 터미널에서 안되는 경우가 있을 수 있다.

애초에 장고문제도 아니고, 터미널에서 가상환경 자체가 실행이 안된거로 이해되며 스크립트의 보안 문제로 보여진다

 

  • powerShell 관리자 모드에서 

  1. Set-ExecutionPolicy Unrestricted (실행)
    y (y 선택)하고 
  2.  다시 파이참 터미널이든 뭐든간에 터미널 가서 해당 프로젝트 venv/scripts 접속후 ls를 확인해보면 actiovate 가 있을 것이다 . 
  3. 이거를 ......\scripts> activate 로 실행(activate.bat로 해도 될거 같은데 해보진 않음.)
  4. (venv),,,,,,....,.,.\scripts> 로 가상환경이 터미널에서도 활성화 된것을 확인 할수 있다 

  5. 그리고 아까 관리자 모드 파워셀에서 Set-ExcutionPolicy 는 다시 켜두는 의미로
  6. Set-ExecutionPolicy Restricted(실행)
    y(y선택)

 

각 설정의미는 이러하다고한다.

 

  • set-excutionpolicy 관련 키워드

Undefined

ExecutionPolicy를 설정하지 않았다는 의미이며, 기본 정책인 "Restricted"로 작동합니다.

Restricted

Windows 10의 ExecutionPolicy 기본 값이며, 이 경우 스크립트(~.ps1) 파일이 실행되지 않습니다. 단, Microsoft에서 만든 일부 스크립트 파일들은 실행이 가능하기도 한데, Microsoft에서 서명된 것이기 때문이 아닐까 합니다.

Unrestricted

이 설정은 Microsoft에서도 권장하지 않는 옵션인데, 모든 스크립트(서명되지 않은 스크립트 포함)를 실행할 수 있습니다. 악성코드를 실행시킬 수도 있기 때문에 왠만하면 사용하지 않는 것이 좋을 듯 합니다.

AllSigned

신뢰할 수 있는 인증기관이 서명한 스크립만 실행하는 옵션으로 보안이 가장 높지만, 해당 컴퓨터에서 작성된 스크립트라 하더라도 신뢰할 수 있는 인증기관이 서명하지 않았다면 실행이 불가능합니다.

Bypass

이 값은 다른 어플리케이션 내에 파워쉘 스크립트가 내장되거나, 별도의 자체 보안 설정을 갖추었을때 사용하기 위해 만들어졌으며, 차단되거나 별다른 경고 없이 실행됩니다.

RemoteSigned

이 값은 최신 Windows Server 버전(Windows Server 2012 R2 이후)의 Powershell 실행정책 기본값입니다.

해당 로컬 컴퓨터에서 에서 작성된 모든 스크립트는 실행이 가능하며, 인터넷에서 다운로드(IE, 크롬, 파이어폭스, 아웃룩 등)한 스크립트는 인증기관이 발행한 코드로 서명되어야만 실행이 가능합니다. 인터넷 이외의 소스로부터 다운로드 받거나 서명은 되었지만 악의적인 목적이 있는 스크립트는 위험이 있을 수도 있습니다.

Microsoft Windows PowerShell 팀에서 권장할 만큼 가장 많이 설정되는 값이며, 보안과 편리함의 균형을 어느정도 확보할 수 있습니담. 하지만 스크립트가 반드시 실행되어야 하는 컴퓨터에서만 사용하는 것이 바람직합니다.