파이썬 배치 파일 오류 도움 부탁드립니다.

알림
|
X

페이지 정보

작성자 no_profile 천중도 211.♡.46.166
작성일 2024.07.06 13:55
221 조회
0 추천
쓰기

본문

안녕하십니까~ 

파이썬을 공부해보고 있는데  엑셀 변환 프로그램을 만들고 있는 중 실행 파일에서 막혀서 도움 요청 드리려고 합니다. ;;  

tkdnd 기능이 vscode 에서 실행 할때는 잘되는데 배치파일(exe)로 만들어서 하면 아래 오류 부분이 발생해서 

작동이 안되네요 ㅜㅜ .. 혹시 가르침을 주실 분 계실까요 ?  감사합니다.


Traceback (most recent call last):
File "tkinterdnd2\TkinterDnD.py", line 53, in _require
_tkinter.TclError: can't find package tkdnd

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "Amkor1.py", line 262, in <module>
File "tkinterdnd2\TkinterDnD.py", line 285, in __init__
File "tkinterdnd2\TkinterDnD.py", line 55, in _require
RuntimeError: Unable to load tkdnd library.
[7672] Failed to execute script 'Amkor1' due to unhandled exception!

댓글 8 / 1 페이지

달2님의 댓글

작성자 달2 (211.♡.135.31)
작성일 07.06 14:47
보통 이런 오류는 exe 파일을 생성할때 필요한 라이브러리(tkdnd)가 포함되지 않아서 일거에요.
exe 파일 생성할때 필요 라이브러리를 포함하도록 하는 옵션이 있을거에요.

천중도님의 댓글의 댓글

대댓글 작성자 no_profile 천중도 (223.♡.242.63)
작성일 07.06 17:08
@달2님에게 답글 감사합니다 ^^

cpp64님의 댓글

작성자 cpp64 (39.♡.174.51)
작성일 07.06 16:12
pyinstaller 로 변환하는 거라면 만들 때 --onefile 옵션 추가해보세요.

천중도님의 댓글의 댓글

대댓글 작성자 no_profile 천중도 (223.♡.242.63)
작성일 07.06 17:08
@cpp64님에게 답글 옵션 추가해서 해보겠습니다 감사합니다

찰리브라운님의 댓글

작성자 찰리브라운 (182.♡.14.187)
작성일 07.07 08:18
위의 문제를 해결하기 위해 몇 가지 추가 조치를 취해야 합니다. 특히, `tkdnd` 라이브러리와 `tkinterdnd2` 모듈을 포함하여 배포할 때 필요한 구성 요소를 정확히 포함시키는 것이 중요합니다. 아래의 단계를 따라 문제를 해결해 보세요:

1. **`tkdnd` 라이브러리 파일 찾기:**
  `tkdnd` 라이브러리가 설치된 위치를 확인합니다. 일반적으로 `tkdnd`는 Tcl/Tk 확장 라이브러리로 설치됩니다.

  ```bash
  find /path/to/python/site-packages -name "tkdnd*"
  ```

  위 명령어를 사용하여 `tkdnd` 라이브러리 파일의 위치를 찾을 수 있습니다. Windows에서는 해당 경로를 수동으로 탐색하여 찾을 수 있습니다.

2. **`tkdnd` 라이브러리 복사:**
  PyInstaller의 `--add-binary` 옵션을 사용하여 `tkdnd` 라이브러리를 실행 파일에 포함시킵니다.

  ```bash
  pyinstaller --onefile --add-binary "path/to/tkdnd;tkinterdnd2/tkdnd" your_script.py
  ```

  예를 들어, `tkdnd` 라이브러리가 `C:\Python38\Lib\site-packages\tkdnd`에 설치되어 있다면:

  ```bash
  pyinstaller --onefile --add-binary "C:/Python38/Lib/site-packages/tkdnd/tkdnd2.8;tkinterdnd2/tkdnd" your_script.py
  ```

3. **hook 파일 생성 및 수정:**
  이미 언급된 `hook-tkinterdnd2.py` 파일을 다음과 같이 작성합니다:

  ```python
  from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs

  datas = collect_data_files('tkinterdnd2')
  binaries = collect_dynamic_libs('tkinterdnd2')
  ```

  이 파일을 프로젝트 디렉터리의 `hooks` 디렉터리에 저장합니다.

4. **PyInstaller 실행:**
  PyInstaller를 실행할 때 추가적인 hook 디렉터리를 지정합니다.

  ```bash
  pyinstaller --additional-hooks-dir=./hooks --onefile --add-binary "path/to/tkdnd;tkinterdnd2/tkdnd" your_script.py
  ```

5. **실행 파일 테스트:**
  생성된 실행 파일을 테스트하여 `tkdnd` 라이브러리가 제대로 포함되어 실행되는지 확인합니다.

이 단계를 통해 `tkinterdnd2`와 `tkdnd` 라이브러리를 포함한 실행 파일을 생성할 수 있을 것입니다. 추가적인 문제가 발생할 경우, 해당 에러 메시지를 참고하여 필요한 추가 설정을 할 수 있습니다.

예린지님의 댓글의 댓글

대댓글 작성자 no_profile 예린지 (106.♡.197.116)
작성일 07.07 10:30
@찰리브라운님에게 답글 AI 답변인가요?

찰리브라운님의 댓글의 댓글

대댓글 작성자 찰리브라운 (182.♡.14.187)
작성일 07.07 21:48
@예린지님에게 답글 네 ai답변입니다

천중도님의 댓글의 댓글

대댓글 작성자 no_profile 천중도 (211.♡.194.107)
작성일 07.09 04:55
@찰리브라운님에게 답글 노트북이 고장이나서 못해보고 있는데, 고쳐지는대로 알려주신내용으로 해보겠습니다 감사합니다^^
쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색