문의자
SQL Server ML-Service Python StdOut 출력 관련 질문

질문
모든 응답
-
안녕하십니까,@ Min_root 님
MSDN 포럼에 질문 주셔서 감사합니다.
sys.stdout를 no-op 쓰기 메서드가 있는 개체로 바꿀 수 있습니다.
예를 들어:
import contextlib import sys class DummyFile(object): def write(self, x): pass @contextlib.contextmanager def nostdout(): save_stdout = sys.stdout sys.stdout = DummyFile() yield sys.stdout = save_stdout
관련 Case 올려드립니다, 문제 해결에 도움이 되였으면 합니다.
또한 Contextlib 패키지에서 억제 기능을 확인할 수 있습니다.
답변이 도움이 되였으면 합니다, 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해 주시기 바랍니다.
감사합니다.MSDN Community Support Elin
※ 다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.
-
안녕하십니까, @ Min_root 님
피드백 주셔서 감사합니다.
위에 공유드린 링크의 관련 사례에 대한 여러 방법을 시도해 보셨는지요?
또한 Contextlib 패키지의 억제 기능을 시도해 보셨나요?
문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해 주시기 바랍니다.
감사합니다.MSDN Community Support Elin
※ 다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.
-
넵, 억제 기능 또한 시도를 해보았습니다.
https://stackoverflow.com/questions/2828953/silence-the-stdout-of-a-function-in-python-without-trashing-sys-stdout-and-resto
https://docs.python.org/3/library/contextlib.html#contextlib.suppress
제가 원하는 형태는
DB 에서 실행하는 외부스크립트 => ML-Service Python 항목에서
EXECUTE sp_execute_External_script @language=N'Python' , @Script=N' '
를 실행 하였을 경우 메시지 창에서 더이상의
외부 스크립트의 STDOUT 메시지: Express Edition will continue to be enforced.
라는 창이 뜨지 않기를 희망 합니다.
-
안녕하십니까, @ Min_root 님
답변 주셔서 감사합니다.해당 문제는 Python과 관련된 것으로 추가 도움이 필요한 경우 Python 포럼에 질문을 게시하는 것을 추천드립니다.
Forums | Python.org
이해해 주시기 바랍니다.
위 웹 사이트는 Microsoft에서 호스팅 하지 않았기에 Link가 변경될 수 있습니다. Microsoft는 해당 정보의 정확성을 보증하지 않습니다.MSDN Community Support Elin
※ 다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.
- 편집됨 Elin-msftModerator 2022년 12월 16일 금요일 오전 6:12 Edit
-
답변 감사합니다. @Elin-msft
그러면 MSSQL 에서는 해당 부분에 대해서는 없나요??
저 문구 자체가 Express Edition 인데 Python 이랑 연관이 있는 건가요??
MSSQL 의 버전 의 문제인걸로 알고 있었는데 그게 아닌 건가요??
그 어떤 구문을 넣든 해당 문구가 제일 먼저 표시가 되고 있습니다.
가령 예를 들면 sp_execute_external_script 를 할때 별도 조건을 건다든지 그런 것이 없나요??
-
안녕하십니까, @ Min_root 님
아래 문서를 참조하시기 바랍니다.
https://learn.microsoft.com/ko-kr/sql/sql-server/editions-and-components-of-sql-server-2019?view=sql-server-ver16
이 문서의 시작 부분에는 여러 버전 간의 차이점이 설명되어 있습니다.
그런 다음 프로그래밍 가능성 섹션으로 건너뛸 수 있습니다.
이전 회신에 따르면 님께서는 표준 버전을 사용하고 있는 것으로 보입니다.
기계 학습 서비스를 사용하여 Python 스크립트를 실행하고 있습니다.
또한, 사용 가능한 개발 버전도 있습니다.
sp_execute_external_script에 대해서는 다음 문서를 참조하시기 바랍니다.
https://learn.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql?view=sql-server-ver16
sys.stdout은 파이썬에서 인터프리터의 표준 출력 스트림과 유사한 내장 파일 객체입니다, stdout은 화면 콘솔에 직접 출력을 표시하는 데 사용됩니다.
출력은 모든 형태일 수 있으며, 인쇄문, 표현문 또는 직접 입력을 위한 프롬프트일 수도 있습니다.
기본적으로 스트림은 텍스트 모드입니다.
실제로 코드 내에서 인쇄 함수가 호출되는 곳은 어디든지 먼저 sys.stdout에 기록된 다음 마지막으로 화면에 기록됩니다.
따라서 이 문제는 Python에 관련된 것으로 보입니다.
감사합니다.MSDN Community Support Elin
※ 다른 커뮤니티 멤버에게 도움이 될 수 있게 문제를 해결 한 답변을 '답변으로 표시'를 클릭하시고 그렇지 않은 경우 '답변으로 표시 취소'를 클릭하시기 바랍니다. MSDN 서포트에 대한 의견이나 불만이 있을 경우 MSDNFSF@microsoft.com 으로 연락하시기 바랍니다.
- 편집됨 Elin-msftModerator 2022년 12월 20일 화요일 오전 7:13 Edit