인프런 커뮤니티 질문&답변

BH J님의 프로필 이미지

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

관계를 표현하는 모델 필드 (ForeignKey)

RuntimeError: populate() isn't reentrant

작성

·

826

0

어제까지는 실행 잘됐었는데 
주피터 노트북으로 실행하니까 이런식으로 뜹니다 ㅠㅠ

http://127.0.0.1:8000/admin/instagram/comment/add/

이랑

저번에 배웠던 
python manage.py shell_plus --print-sql --ipython  
로 실행시에는 

이런식으로 잘나오는데

무슨이유인지를 모르겠네요.
혹시 더 올려야하는 정보들이 있을까요?

답변 2

1

이진석님의 프로필 이미지
이진석
지식공유자

그리고, 질문 제목의 RuntimeError: populate() isn't reentrant 오류는 장고 프로젝트 초기화django.setup() 가 여러 번 호출될 때 발생합니다.

django.setup() 이후에 다시 호출이 필요하시다면, 해당 jupyter notebook의 kernel을 restart 후에 다시 호출하시면 됩니다.

0

BH J님의 프로필 이미지
BH J
질문자

삭제된 글입니다

이진석님의 프로필 이미지
이진석
지식공유자

jupyter 명령에서 참조하는 경로가 가상환경의 jupyter가 아니라, 가상환경 밖의 아나콘다 시스템 경로의 jupyter를 참조하였기에, 가상환경 내의 라이브러리를 참조하지 못하여 임포트 에러가 발생했을 것입니다.

특히 윈도우 환경에서는 가상환경 활성화 후에, 가상환경에 설치한 명령들이 즉시 환경변수 PATH에 로딩이 안 되는 경우가 많더라구요. // jupyter를 재설치하셨기에 동작을 하는 것이 아니라, 그 과정에서 터미널을 새로 여시고 가상환경 활성화 과정에서 PATH가 제대로 로딩되었기 때문일 것입니다.

PATH가 제대로 올라오지 않았을 때, 현재 터미널의 환경변수 PATH 값도 출력해보시고, jupyter 명령의 참조 위치도 확인해보세요.

jupyter 명령 대신에 python -m jupyter 명령을 써보시면, 가상환경 디렉토리 내 실행 파일 경로들이 환경변수 PATH가 제대로 올라오지 않은 상황에서도 활용하실 수 있으실 겁니다.

화이팅입니다. :-)

BH J님의 프로필 이미지
BH J
질문자

감사합니다!!!!

윈도우에서 전에 juptyer노트북을 설치했어도

askcompany 가상환경에서 다시 한번 설치를 해줘야하는건가요??

아니면 제가 임의의 가상환경을 새로만든다고 가정했을때 

juptyer노트북 path를 재설정해줘야한다는 말씀이신가요????

아직 아나콘다 가상환경에 대한이해가 좀 부족한것같네요

이진석님의 프로필 이미지
이진석
지식공유자

가상환경 별로 jupyter 설치가 필요합니다. 가상환경에 설치된 jupyter는 그 가상환경 내 라이브러리를 참조합니다.

path 설정은 가상환경을 activate하면 가상환경에 맞게 설정을 해주는데, 가상환경 생성하자마자 activate하면 PATH 세팅에서 가끔 꼬일 때도 있더라구요. 터미널 새로 켜고 다시 activate하면 문제가 없을 겁니다.

이는 가상환경 외적으로 환경변수 PATH와 터미널 환경에 대한 이해가 좀 필요합니다. 그래서 현재 터미널에서 환경변수 PATH 값을 확인하는 것과 현재 사용하고 있는 터미널 명령의 경로를 확인해보시면, 보다 손쉽게 이러한 문제를 확인하실 수 있습니다.

명령프롬프트에서는
echo %PATH% 명령과
where jupyter 명령

파워쉘에서는
echo $env:PATH 명령과
get-command jupyter 명령

bash/zsh 쉘에서는
echo $PATH 명령과
which jupyter 명령입니다.

화이팅입니다. :-)

BH J님의 프로필 이미지
BH J
질문자

진짜 ㅜㅜㅜ 정말감사드립니다

답변 감동입니다

BH J님의 프로필 이미지

작성한 질문수

질문하기