- Published on
Pycharm 에서 Conda 가상 환경 생성 시 발생한 Error condarc 설정으로 해결하기
- Authors
- Name
- hongreat
- ✉️hongreat95@gmail.com
최근 M3 MacBook에서 PyCharm을 통해 conda로 가상 환경을 생성하려다 다음과 같은 에러를 만났습니다.
TypeError: expected str, bytes or os.PathLike object, not NoneType 가 발생했습니다.

conda create -y -n 환경명 python=3.10 명령어 실행으로도 설치가 되지 않았고,
이 글에서는 문제를 해결한 과정을 단계별로 기록합니다.
1. 문제 상황
1.1 명령어로 설치 시도 에러 발생
환경: M3 MacBook, Miniconda 24.11.1, (PyCharm Pro.)
에러 발생: Python 3.10 기반 가상 환경 생성(3.8 이상 어떤 환경도 설치불가)
File "<frozen posixpath>", line 399, in abspath
TypeError: expected str, bytes or os.PathLike object, not NoneType
스택 트레이스를 보면 conda가 경로를 처리하는 중 None 값을 만나 중단된 것을 알 수 있었습니다. 넷상에 비슷한 이슈가 많았고, Pycharm 문제일 것이라고 생각했습니다.
터미널에서 직접 실행을 하고자 명령어를 실행했습니다.
/Users/유저명/miniconda3/bin/conda create -y -n 환경명 python=3.10
결과는 동일한 에러로 실패이고, 문제는 PyCharm이 아니라 conda 자체에 있음이 확인되었습니다.
2. 환경변수 확인
기존에 이것 저것 해보던 과정에서 PATH에 Ruby, Node.js, Flutter 등 다양한 경로가 포함되 있었습니다. 이런 세팅이 꼬여있어서 환경 변수 점검을 의심했고, 가장 기본값으로 세팅을 변경했습니다.
2.1 PATH 백업
혹시 PATH 설정이 기존과 달라질 경우, 예상치 못한 에러가 발생할 수 있으니 백업을 먼저 해둡니다.
백업 결과는 아래처럼 매우 지저분하긴 했습니다.
/Users/유저명
/.rvm/gems/ruby-3.2.2/bin:/Users/유저명
/.rvm/gems/ruby-3.2.2@global/bin:/Users/유저명
/.rvm/rubies/ruby-3.2.2/bin:/Users/유저명
/.nvm/versions/node/v18.20.7/bin:/opt/homebrew/opt/postgresql@14/bin:/Users/유저명
/miniconda3/condabin:/opt/homebrew/bin:/Users/유저명
/flutter/bin:/Applications/PyCharm.app/Contents/MacOS:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Users/유저명
/.cargo/bin:/Applications/Ghostty.app/Contents/MacOS:/Users/유저명
/flutter/bin:/Users/유저명
/bin/cache/dart-sdk/bin:/Users/유저명
/.pub-cache/bin:/Users/유저명
/.rvm/bin:/Users/유저명
/.rvm/bin
참고로 백업을 명령어로 쉽게하는 방법은 아래 명령어와 같습니다.
echo $PATH > ~/path_backup.txt
2.2 PATH 초기화
백업은 옵션이고 아래 명령어로 기본 PATH로 초기화 합니다. PATH란 애초에 환경변수를 위한 것이고 시스템이 프로그램을 실행할 때 참조하는 경로를 나타내주는 것 입니다. (즉 이 경로에 프로그램이 위치해야 실행할 수 있습니다.)
export PATH="/Users/유저명/miniconda3/bin:/usr/bin:/bin:/usr/sbin:/sbin"
conda create -y -n 환경명 python=3.10
여전히 실패. PATH는 원인이 아니었습니다.
3. condarc 파일 조사
.condarc 파일도 중요한 conda 설정 값 입니다. conda의 설정 파일 기본경로는 ~/.condarc이고 확인결과 아래와 같았습니다.
3.1 문제 원인
현재 환경은 M3 MacBook arm64 아키텍처 입니다. subdir: osx-64는 x86_64을 강제 지정한 설정이 되어 있었습니다.

auto_activate_base: false
channels:
- defaults
subdir: osx-64
과거 Python 3.7을 사용하기 위해 subdir: osx-64를 설정했던 기억이 떠올랐습니다. Python3.7 이 x86_64 아키텍처와 호환되기 때문에 설정해둔 기억이 납니다. (이는 현재 근무환경에서 사용되는 Python 3.7 버전 세팅을 진행하는 과정에서 설정한 것 이었습니다.)
일단 확신하지 않았어서, 이 역시 백업을 해뒀습니다.
3.2 condarc 백업
mv /Users/유저명/.condarc /Users/유저명/.condarc_backup
이 설정자체가 conda가 경로를 처리할 때 context.active_prefix나 context.root_prefix를 None으로 만들며 TypeError를 유발했다고 합니다.
3.3 condarc 세팅 변경
올바른 세팅을 위해서 아래 명령을 실행 해줍니다.
echo -e "channels:\n - defaults\nsubdir: osx-arm64" > ~/.condarc
이제 conda create 명령어를 실행하면 정상적으로 가상환경이 생성됩니다. 참고로 subdir은 굳이 적지 않아도 상관 없습니다. 혹시 이렇게 해도 안되는 분들은 subdir도 삭제하고 해보시길 바랍니다.
```text
channels:
- defaults
subdir: osx-arm64 # 이건 생략 가능합니다.
만약, conda create와 pycharm에서 설정도중에 miniconda의 env가 생성되었을 수 있습니다. 이 때, 다시 create를 같은 환경명으로 실행하면, 이미 존재하는 환경이라고 에러가 발생합니다.
이를 방지하기 위해서 conda env remove -n 환경명 명령어로 삭제 후 다시 create를 실행합니다.
conda env remove -n 환경명
만약 miniconda env에 이미 dir이 생성된 상황이라면 아래 명령어를 실행해줍니다. (테스트 과정에서 해당 환경이 이미 생성되어있어서, 이를 삭제 해주었습니다.)
rm -rf /Users/유저명/miniconda3/envs/환경명
4. 결론 및 참고자료
이번 경험을 통해 Python 3.7 과 아키텍쳐간의 차이와 설정 값이 .condarc가 conda의 동작에 얼마나 큰 영향을 미치는지 깨달았습니다.
플랫폼 설정(subdir)이 하드웨어와 맞지 않으면 예상치 못한 오류가 발생할 수 있으니, 설정 변경 시 주의가 필요합니다. 이 글이 비슷한 문제를 겪는 개발자들에게 도움이 되기를 바랍니다.