일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Unity
- c# winform
- Data Structure
- vim
- 포인터
- C++
- c#
- 도커
- C언어 포인터
- c# 추상 클래스
- 플러터
- Algorithm
- github
- git
- c언어
- 유니티
- dart 언어
- Houdini
- docker
- Python
- Flutter
- jupyter lab
- 다트 언어
- c# 윈폼
- 구조체
- C# delegate
- 깃
- jupyter
- HTML
- gitlab
Archives
- Today
- Total
nomad-programmer
[Programming/Errors] ModuleNotFoundError: No module named 'pkg_resources.py2_warn' 본문
Programming/Errors
[Programming/Errors] ModuleNotFoundError: No module named 'pkg_resources.py2_warn'
scii 2020. 7. 8. 19:57pyinstaller를 이용해 exe파일 생성 후 실행시키니 ModuleNotFoundError: No module named 'pkg_resources.py2_warn' 라는 오류가 발생했다.
구글링 결과 hiddenimports 메뉴 부분에 추가하면 된다고 한다. 그래서 아래처럼 추가하여 해결하였다.
만약 OpenCV를 사용하였는데 "cv2" 임포트 에러가 발생하면, 아래와 같이 binaries에 dll을 추가해준다.
a = Analysis(['main.py'],
pathex=['D:\\workspace\\python\\test',
'D:\\workspace\\python\\test\\widgets\\preference',
'D:\\workspace\\python\\test\\widgets\\screenshot'
],
binaries=[('C:\\Anaconda3\\envs\\auto_gui\\lib\\site-packages\\cv2\\opencv_videoio_ffmpeg430_64.dll', '.')],
datas=[],
hiddenimports=['MySQLdb', 'pkg_resources.py2_warn'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True , icon='main.ico')
위와 같이 spec파일을 수정하고 아래의 명령처럼 실행하면 된다.
// 주의할 점은 main.exe가 아닌 main.spec 이라는 점이다.
pyinstaller.exe --icon=main.ico --onefile --noconsole .\main.spec
앱 처음 시작 시 너무 느린 현상.
간단한 앱도 onefile 옵션으로 만든 exe파일을 실행하면 너무 느리다... 이유를 찾아보니 하나의 파일로 만들어지면서 필요하지도 않은 모듈들이 포함되어 너무 무거워진 탓이다.
아래의 onedir 옵션의 spec파일과 명령이다.
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['D:\\workspace\\python\\kakaoMultipleMsg'
'D:\\workspace\\python\\kakaoMultipleMsg\\widgets\\preference',
'D:\\workspace\\python\\kakaoMultipleMsg\\widgets\\screenshot'
],
binaries=[('C:\\Anaconda3\\envs\\auto_gui\\lib\\site-packages\\cv2\\opencv_videoio_ffmpeg430_64.dll', '.')],
datas=[],
hiddenimports=['MySQLdb', 'pkg_resources.py2_warn'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=False , icon='main.ico')
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='main')
// 주의할 점은 main.exe가 아닌 main.spec 이라는 점이다.
pyinstaller.exe --icon=main.ico --onedir --noconsole .\main.spec
'Programming > Errors' 카테고리의 다른 글
[Programming/Errors] Git Push rejected (0) | 2020.06.23 |
---|---|
[Programming/Errors] scanf: This function or variable may be unsafe. 오류 (0) | 2020.06.14 |
Comments