성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
[공진영] 안녕하세요 좋은글 감사합니다. 현재 제가 wpf로 관제 모...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>WSL Ubuntu 20.04에서 파이썬을 위한 uwsgi 설치 방법</h1> <p> <span style='color: blue; font-weight: bold'> (2021-12-18 업데이트: 이 글의 내용을 적용하지 말고, 새롭게 쓴 "<a target='tab' href='https://www.sysnet.pe.kr/2/0/12881'>WSL Ubuntu 20.04에서 파이썬을 위한 uwsgi 설치 방법 (2)</a>"를 참고하는 것을 권장합니다.)</span><br /> <br /> <hr style='width: 50%' /> <br /> WSL로 Ubuntu 20.04를 최초 설치한 순간부터 시작해 볼까요? ^^<br /> <br /> 우선, 패지키 repo 먼저 업데이트하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>sudo apt update</span> $ <span style='color: blue; font-weight: bold'>sudo apt upgrade -y</span> </pre> <br /> 기본적으로 python3는 설치되어 있으므로 pip3를 설치한 다음,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>sudo apt install python3-pip -y</span> </pre> <br /> uwsgi와 파이썬 plug-in을 설치합니다. <br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>sudo apt install uwsgi-core -y</span> $ <span style='color: blue; font-weight: bold'>sudo apt install uwsgi-plugin-python3 -y</span> </pre> <br /> 그런데. 이렇게 하고 지난 글에서 설명한 명령을 실행해 보면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ uwsgi --http :18091 --chdir /mnt/d/pycharm/work/myapp --wsgi-file ./myapp/wsgi.py uwsgi: option '--http' is ambiguous; possibilities: '--http-socket' '--http-socket-modifier1' '--http-socket-modifier2' '--http11-socket' '--https-socket' '--https-socket-modifier1' '--https-socket-modifier2' getopt_long() error </pre> <br /> 오류가 발생합니다. 그새 뭔가 변한 것인지, 아마도 좀 더 세세하게 프로토콜을 지정해야 하는 것 같은데요, 일단 --http-socket으로 지정하면 해결이 되지만,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <a target='tab' href='https://www.sysnet.pe.kr/2/0/12772'>uwsgi --http-socket :18091 --chdir /mnt/d/pycharm/work/myapp --wsgi-file ./myapp/wsgi.py</a> uwsgi: unrecognized option '--wsgi-file' getopt_long() error </pre> <br /> 그래도 오류가 발생하는군요. ^^; 검색해 보면 분명히 uwsgi-plugin-python3을 설치하면 된다고 하는데 저렇게 오류가 발생합니다. 실제로 로드된 플러그인 목록도 비어 있는데요,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>uwsgi --plugins-list</span> *** uWSGI loaded generic plugins *** *** uWSGI loaded request plugins *** --- end of plugins list --- ...[생략]... </pre> <a name='apply_plugin'></a> <br /> 그렇다고 플러그인 설치가 안 된 것은 아닙니다. 왜냐하면 find 명령으로 이렇게 위치하고 있기 때문입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>find / -path /mnt -prune -o -name python3_plugin.so 2>/dev/null</span> /mnt /usr/lib/uwsgi/plugins/python3_plugin.so </pre> <br /> 음... 할 수 없군요. 강제로 경로를 지정해서 로드를 시도하면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>uwsgi --plugin /usr/lib/uwsgi/plugins/python3_plugin.so --plugins-list</span> *** uWSGI loaded generic plugins *** *** uWSGI loaded request plugins *** 0: python --- end of plugins list --- ...[생략]... </pre> <br /> 다행히 파이썬 플러그인이 올라옵니다. 따라서, 이제는 테스트를 위한 명령어가 이렇게 복잡해졌습니다. ^^;<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>uwsgi --plugin /usr/lib/uwsgi/plugins/python3_plugin.so --http-socket :18091 --chdir /mnt/d/pycharm/work/myapp --wsgi-file ./myapp/wsgi.py</span> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 재미있는 것은, /usr/bin에 uwsgi가 설치되어 있는데요, 그 외에 uwsgi_python3도 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > /usr/bin$ <span style='color: blue; font-weight: bold'>ls uw*</span> uwsgi uwsgi-core uwsgi_python3 uwsgi_python38 </pre> <br /> 그리고 그걸로 실행하면 별다르게 플러그인을 지정하지 않아도 /usr/lib/uwsgi/plugins/ 경로에 있는 python3_plugin.so 파일을 잘 로드해 실행합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>uwsgi_python3 --http-socket :18091 --chdir /mnt/d/pycharm/work/myapp --wsgi-file ./myapp/wsgi.py</span> [uwsgi] implicit plugin requested python3 ...[생략]... </pre> <br /> 아마도 uwsgi는 python_plugin.so를, uwsgi_python3는 python3_plugin.so를 로드하는 듯한데... 어쨌든 이상하군요, 예전에는 저런 절차 없이 잘 사용을 했는데. ^^;<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
2062
(왼쪽의 숫자를 입력해야 합니다.)