Utilities

[Anaconda] Powershell에서 아나콘다 가상환경 활성화가 안 되는 문제 해결하기

Jonghyuk Baek 2023. 1. 15. 00:15

Introduction

파워쉘에서 아나콘다 환경을 사용하고 싶어 가상환경을 만들었는데, 만들기까지는 정상적으로 되지만 activate는 안 되는 요상한 현상을 발견했다. 

결론부터 말하면 윈도우 계정 이름이 한글로 되어있어 아나콘다를 통한 파워쉘 프로파일 생성 도중 유니코드 경로가 깨지는 현상이 발생하는 것이였고, 이로 인해 파워쉘이 프로파일 위치를 제대로 찾지 못 해 문제가 생기는 것이었다. 프로파일의 경로를 제대로 수정해 주면 문제를 해결할 수 있다.


Solution

먼저 파워쉘을 관리자 모드로 실행시켜 주자.

귀찮아라..

 

파워쉘에서 아나콘다를 사용하려면 아래 명령어를 실행시켜 주어야 한다.

$ conda init powershell

그러면 위와 같은 아웃풋이 출력되는데, 잘 실행된 것 같지만 마지막 줄의 프로파일 생성 결과를 보면 경로 일부가 깨져 있는 것을 볼 수 있다.

이 상태에서는 명령대로 파워쉘을 재시작하고 아나콘다 환경을 실행하려 해도, 아무 일도 일어나지 않는다. 또한 실제로 잘못된 경로로 파워쉘 프로파일이 생성되어 있다.

그리고 파워쉘에서 아래 명령어를 실행해 False 가 출력되는 것을 확인하자.

$ test-path $profile

이제부터는 제대로 된 위치에 제대로 된 프로파일이 놓이도록만 하면 문제가 해결된다.

 

먼저 아래 명령어를 실행해 제대로 된 위치에 새로운 파워쉘 프로파일을 하나 생성하자.

$ new-item -path $profile -itemtype file -force

이 이후에는 $ test-path $profile 명령어가 True를 반환하지만 아직 문제는 해결되지 않는다. 새로 생성된 프로파일에는 conda init powershell 을 수행하면서 작성되는 내용이 포함되어 있지 않고 텅텅 비어있기 때문이다.

 

따라서 우리는 이전에 잘못 생성된 프로파일을 열어 그 내용을 새 프로파일에 복사해 주어야 한다.

 

아까 본 깨진 경로로 들어가 conda에 의해 생성된 프로파일을 텍스트 에디터로 열고, 내용을 복사해 가자.

#region conda initialize
# !! Contents within this block are managed by 'conda init' !!
If (Test-Path "C:\Resources\Anaconda3\Scripts\conda.exe") {
    (& "C:\Resources\Anaconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | ?{$_} | Invoke-Expression
}
#endregion

내용은 보통 위와 같은 형태로 생겼는데, 환경마다 경로가 달라 그대로 사용할 수는 없을 것이다.

복사한 내용을 아까 생성한 프로파일 파일에다가 그대로 붙여넣기 해 주자. 새 프로파일의 경로는 이전에 프로파일을 생성할 때 출력된 내용에서 찾을 수 있다. 참고를 위해 같은 사진을 다시 가져왔다.

디렉터리:  부분에 경로가 적혀 있다.

해당 파일을 찾아 그대로 붙여넣자.

 

저장 후 파워쉘을 재시작하면 뭔가 느낌이 다르다. 이전과 다르게 프로필 로드 시간을 알려주고 있다. 프로파일을 제대로 찾아 conda init 을 실행하게 되면서 발생하는 현상이다.

이 이후에는 conda activate 명령어가 잘 실행된다.

 


Conclusion

사실 한참 검색해도 다른 뜬구름 잡는 소리만 있어서 포기할까 하다가, 포기하고 아나콘다 프롬프트를 사용하자니 폰트가 너무 구린 관계로 다시 한참 잡고 있다 겨우 해결했다..... 다른 사람들에게도 도움이 되면 좋겠다.

 

 

 

반응형