[개발] 지식/Anaconda

Windows PowerShell에서 conda 사용을 위한 설정 (안될 수도 있음)

하하미아 2022. 6. 5. 22:58

결과적으로 실패했는데, 다른 PC에서는 PowerShell에서 동작하는데 성공했다. 정확히 원인을 알 수 없어 일단 포기하고 Anaconda Prompt를 사용하기로 결정했다. 안되는 PC에서는 CMD에서는 동작하는데 PowerShell에서만 작동이 안되는 상황이다.

conda 업그레이드

$ conda update conda

일단 초기 세팅할 때는 최신 버전 또는 stable 버전으로 업그레이드 하는게 좋다. 서치를 해보니 4.6.0 이전과 이후로 shell 관련하여 분기점이 생긴듯하다. 추측이지만 4.6.0 미만 버전에서는 잘 동작할 수도 있을 것 같다.

설정 초기화

$ conda init powershell

위 명령어를 수행하여 powershell에 대해 conda를 활성화한다.

실행 정책 변경

$ Get-ExecutionPolicy

PowerShell에서 위 명령어를 실행하면 ‘Restricted’라고 뜰 것이다.

이를 변경하기 위해 우선 PowerShell을 관리자 모드로 열어야 한다.

$ Set-ExecutionPolicy -ExecutionPolicy Unrestricted

그리고 위 명령어를 실행해서 실행 정책을 변경한다.

$ Get-ExecutionPolicy

실행정책이 Unrescricted 가 된 것을 확인한다.

PowerShell 재시작

쉘을 재시작해야 적용된다. 재시작해서 가상환경이 활성화 되는지 확인해보자. 나는 회사 PC에서는 성공했고, 집 PC에서는 실패했다.

다른 방법

아래 3가지 방법을 시도했으나, 집 PC에서는 모두 실패했다. 그래도 기록을 위해 남겨둔다.

1. Scope 변경

Set-ExecutionPolicy -ExecutionPolicy Unrestricted 이거를 사용해서 세팅하면 LocalMachine Scope에만 적용이 되는데 CurrentUser Scope에 적용하는 방법이다.

$ Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

권한을 CurrentUser로 세팅할 수 있다.

$ Get-ExecutionPolicy -List

Scope별로 세팅된 권한을 볼 수 있다.

2. Unrestricted → RemoteSigned or Bypass

1번과 동일한 방법인데 권한 종류를 바꿔보았다. 인터넷에 서치를 하면 RemoteSigned 또는 Bypass로 설정해보라는 이야기도 있었기 때문.

$ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
$ Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

3. 환경 변수 세팅

아래 경로를 ‘사용자 변수’ 의 Path 변수에 세팅했다. (시스템 변수에 세팅하는 경우 작동하지 않는다는 사례가 있었음)

  • C:\ProgramData\Anaconda3
  • C:\ProgramData\Anaconda3\Scripts
  • C:\ProgramData\Anaconda3\Library
  • C:\ProgramData\Anaconda3\Library\bin

Reference

powershell conda 설정하기

[Anaconda] Powershell에서 Anaconda 환경 사용하기

about_Execution_Policies