• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

저도 cx_freeze로 exe 컴파일을 시도해봤는데 다른 에러가 납니다

20.06.30 23:38 작성 조회수 570

0

안녕하세요^^

인생 최초의 프로그래밍 공부를 나도코딩님의 파이썬 기초편으로 시작한 뒤...

다른 책에 나오는 예제나 간단한 수학 문제도 생각나는 대로 파이썬으로 코딩해 보면서 재미있는 취미생활로 키워나가고 있습니다.

손꼽아 기다리던 나도코딩님의 파이썬 활용편이 나와서 열심히 따라해보고 있습니다.

똥 떨어지는 속도나 방향도 바꿔 보고 여기저기 랜덤숫자도 넣어 보고 하다 보니 자칫 기초편에서 배우고 잊어버릴 뻔했던 것들을 재미있게 배우게 됩니다.

다름이 아니라 저도 아래에 질문하신 최용님처럼 제가 따라해서 만든 코드를 cx_freeze를 활용하여 exe 파일로 만드는 시도를 해보았는데

exe 파일이 생성되긴 하는데 실행 버튼을 누르니 좀 이상한 오류가 나는군요.

아래와 같습니다.

(콘솔 창이 떴다가 에러 메시지만 출력한 후 1초도 되지 않아 닫혀버리기 때문에 폰으로 동영상으로 촬영해 캡처하느라 화질이 좋지 않은 점 죄송합니다)

NameError: name '__file__' is not defined

즉 라인 6의 name '__file__'이 오류가 난다는 것은...

'current_path=os.path.dirname(__file__)'인데요

물론 원래 게임 소스코드에는 강의에 나온 것과 똑같이 맨 앞에 import os 라고 입력해 두었고 몇 번이나 오타를 철저히 확인했기 때문에 소스코드를 직접 파이썬에서 돌렸을 때에는 아무 오류나 경고문 없이 잘 실행되었습니다.

구글에 검색을 해보고 setup.py에 패키지 파일들을 포함시기기 위해 

options ={'build_exe':{'packages': ['pygame','os']}}도 입력을 해보았고 구글에 나오는 수많은 사례들을 따라해 보았습니다만 똑같은 에러가 나네요 ㅋㅋㅋ

실행파일을 만들 줄 알면 프로그래밍을 배운 것을 더 잘 활용하면서 재미있게 공부를 계속할 수 있을 것 같은데 며칠째 아쉬운 마음이 떠나지 않고 자꾸 생각이 납니다 ^^;

혹시 어떻게 하면 좋을지 가르침을 주실 수 있으신지 삼가 부탁드립니다 (_ _)

아무튼 C언어와 파이썬은 주변 모든 사람들에게 나도코딩님을 항상 추천드리고 있고요, 후속편 강좌도 눈이 빠지게 기다리고 있고 책을 내시면 꼭 구입하고 싶습니다. 다른 강좌 봐도 못 따라가는 완전 컴알못이었는데 파이썬 문맹 탈출 시켜주셔서 정말 거듭 감사드립니다 +_+!!! 

답변 4

·

답변을 작성해보세요.

2

힌트 링크만 드렸는데도 이렇게 금방 잘 해결해셨다니 다행이네요 ^^ 원래 잘하시는 분이시군요? ㅎㅎ 다음 강의도 곧 올리겠습니다. 감사합니다.

2

열심히 공부해주셔서 감사합니다 ^^ 패키징을 하실때에는 파일 경로를 조금 다르게 처리해줘야겠네요. 아래 링크의 설명으로 대신 답변드리니 해보시고 안되면 다시 문의글 남겨주셔요 ㅎㅎ

https://stackoverflow.com/questions/21937695/python-cx-freeze-name-file-is-not-defined

0

honeysehee님의 프로필

honeysehee

2020.09.02

cx_freeze 로 리눅스 컴파일 방법도 알려주실수 있을까요?ㅠ

0

NameError님의 프로필

NameError

질문자

2020.07.01

너무너무 감사드립니다+_+! 

포기하고 있었는데 지금 주신 링크의 답변에 나온 소스를 추가하고 "import sys"도 추가하니 이제 아무 문제없이 잘 됩니다.

저도 구글에 검색했을 때 stackoverflow 사이트가 많이 나와서 거기서 제안된 소스들 다 시도해 보았는데도 안 되고 있었는데 저렇게 정확한 답을 미처 못 찾았네요... 역시 저는 아무것도 모르면서 검색하느라 모래사장에서 바늘 찾는 격이었나 봅니다 ㅋㅋㅋ

쓸데없는 거 물어보는 것 같아서 너무 죄송했는데 이렇게 도와주셔서 정말 감사드리고요... 앞으로 나올 강의도 손꼽아 기다리겠습니다. 정말 거듭 감사드려요^^