강의

멘토링

로드맵

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

sam님의 프로필 이미지
sam

작성한 질문수

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

pyinstaller 로 exe 파일을 만들면 환경구축이 안되어있는 PC 에서 실행 불가

해결된 질문

작성

·

267

1

안녕하십니까

티스토리에서 도움 많이 얻어갔었던 수강생입니다.

 

다름이 아니라 메일머지 기능을 자동화하기 위한 프로그램을 작성 중인데

대략적인 샘플코드는 나와서 pyinstaller 를 통해 한글이 설치되어있는 환경에서

동일하게 동작하는지 확인하였으나, 제대로 동작되지 않고 exception 이 발생해서

해당 문제에 대해 도움을 받아볼 수 있을까 하여 질문드립니다.

 

혹시 관련된 코드와 exception 내용, pyinstaller 실행문을 공유드리면

확인해주실 수 있으신지 문의드립니다.

답변 2

1

일코님의 프로필 이미지
일코
지식공유자

sam님, 안녕하세요! 반갑습니다^^

회신이 조금 늦었습니다 죄송합니다

 

현재 이 부분 때문에 코드를 손을 봐야 하는데ㅜ 아직 진행을 못 하고 있습니다.

급한대로 익셉션이 나지 않는 방법을 알려드려봅니다.

먼저 밝혀둘 것은, 익셉션은 보안모듈 등록 때문에 발생하고 있습니다ㅜㅜㅜㅜ

죄송합니다.

 

① pyinstaller 실행시 바이너리 첨부

컴파일하실 때 FilePathCheckerModule.dll 파일을 소스코드와 동일한 폴더에 복사하신 후

--add-binary="filePathCheckerModule.dll:." 옵션을 추가해주시기 바랍니다.

예를 들면 아래처럼요.

pyinstaller -F -w --add-binary="FilePathCheckerModule.dll:." source.py

 

FilePathCheckerModule.dll 파일 동봉

위 방법으로도 간혹 오류가 나는 경우가 있습니다. (권한문제일까요? 원인을 모르겠습니다ㅜ)

그런 경우에는 FilePathCheckerModule.dll 파일을 실행파일과 같이 배포해보시기 바랍니다.

만약 동봉하여 배포했음에도 오류가 발생한다면,

사용자 폴더(예를 들어 c:\Users\User\ )에다 FilePathCheckerModule.dll 파일을 복사해보세요.

하지만 대~~부분의 경우에는 ①번 방법으로 해결될 것입니다.

 

③ 극단적인 방법 : 보안모듈 등록하지 않기

처음에 hwp 객체를 만드실 때, hwp = Hwp(register_module=False) 라고 초기화하시면

익셉션이 발생하는 부분의 코드를 실행하지 않습니다.

대신 보안모듈이 등록되지 않으므로 보안승인팝업이 뜨게 됩니다.

딱 한 번만 "모두 허용"을 눌러주면 되니 큰 문제가 되지는 않을 듯 합니다.

 

저도 깔끔하게 잘 되는 모듈을 만들어서 배포를 하고 싶은데

오류가 쉽게 고쳐지지 않아 죄송한 마음이 큽니다.

혹시 위 방법 중 성공하는 방법이 있다면 공유해주시면 감사하겠습니다.

 

벌써 설 연휴가 시작되었습니다.

행복한 하루, 편안한 명절연휴 보내시기 바랍니다.

감사합니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. sam님! 메일머지 기능을 자동화하기 위해 pyinstaller로 exe 파일을 제작하려고 하시는데, 다른 환경에서 실행 시 문제가 발생하고 있군요.

환경 구축이 되지 않은 PC에서 exe 파일이 작동하지 않는 경우는 종종 발생합니다. 이는 주로 실행 환경에서 필요한 DLL 파일이나 모듈이 누락되어 발생하는 경우가 많습니다.

문제 해결을 위한 접근 방법:

  1. 필요한 모듈 포함 확인:

    • pyinstaller를 사용할 때, 프로그램이 올바르게 실행되기 위해 필요한 모든 Python 모듈이 포함되어 있는지 확인해야 합니다. 종종 의존 관계에 있는 모듈이 누락되기도 하니 --hidden-import 옵션을 통해 필요할 수 있는 모듈들을 명시적으로 추가해보세요.
  2. DLL 파일 포함 설정:

    • 만약 특정 DLL파일이 필요하다면, --add-binary 옵션을 사용해서 해당 DLL 파일들을 명시적으로 추가하십시오.
  3. 에러 메세지 분석:

    • 에러 메시지를 정확히 알아야 해결할 수 있습니다. 어떤 예외가 발생했고, 그 예외가 어느 코드 부분에서 발생했는지 파악하세요.
  4. 테스트 및 디버깅:

    • 다양한 환경에서 테스트합니다. 또한, 코드에 디버깅용 로그를 추가하여 에러 발생 시 보다 명확한 정보를 얻을 수 있도록 합니다.

아래는 관련된 질문과 해결방법을 다룬 유사 사례를 참고하시기 좋은 링크입니다:

이 질문에서는 pyinstaller를 사용하여 exe파일을 만들 때 발생할 수 있는 오류와 그 해결방법을 소개하고 있습니다.

마지막으로, 작성하신 코드나 발생한 에러 메시지에 대해 구체적인 정보가 있으면, 좀 더 구체적인 해결책을 제시할 수 있습니다. 궁금한 점이 더 있으시면 추가 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

sam님의 프로필 이미지
sam

작성한 질문수

질문하기