pyinstaller 패키지 exe 파일 이 너무 커서 pipenv 로 exe 를 축소 하 는 문 제 를 해결 합 니 다.

6212 단어 pyinstallerexepipenv
pyinstaller 패키지 exe 파일 이 너무 커서 pipenv 로 exe 를 축소 하 는 문 제 를 해결 합 니 다.
최근 에 작은 스 크 립 트 를 썼 는데 소스 코드 200 여 줄 이 openpyxl,requests 라 이브 러 리 를 도 입 했 습 니 다.패키지 exe 를 쓴 후에 64MB 의 크기 가 있다 니 정말 놀 랍 습 니 다.인터넷 에서 여러분 의 신 들 의 방법 을 찾 고 자신 이 N 개의 구 덩이 를 작성 한 후에 드디어 exe 파일 을 축소 하 는 방법 을 찾 았 습 니 다.이런 방법 은 반드시 pipenv 에 사용 해 야 합 니 다.상세 한 기록 은 다음 과 같 습 니 다.
1.pipenv 설치
다른 python 라 이브 러 리 를 설치 하 는 것 처럼 cmd 환경 에서 설치:
pip install pipenv
2.설치 가 완료 되면 디스크 부 호 를 마음대로 찾 습 니 다.이 디스크 의 루트 디 렉 터 리(루트 디 렉 터 리 가 가장 좋 습 니 다)에 새 폴 더 를 만 들 고 가상 환경 으로 한 다음 에 이 폴 더 에 더 블 클릭 합 니 다.
3、명령 줄 에 들 어가 shift 키 를 누 르 고 마우스 우 클릭 으로 메뉴 에서 power shell 을 찾 아 들 어가 기
4.가상 환경 에서 python 을 설치 합 니 다.예 를 들 어:
pipenv install --python 3.6
여기 서 첫 번 째 구 덩이 를 만 날 수 있 습 니 다.시스템 은'utf-8'로 전환 할 수 없다 는 것 을 알 릴 수 있 습 니 다.구체 적 인 원인 은 중국어 코드 전환 문제 때 문 이지 만 깊이 연구 할 필요 가 없습니다.이때 가장 좋 은 방법 은 컴퓨터 를 다시 시작 하 는 것 이다.그래,컴퓨터 를 다시 시작 한 다음 에 다른 프로그램 을 켜 지 말고 상기 2 단계,3 단 계 를 반복 하 는 것 이다.
5.명령 행 에서 가상 환경 활성화
pipenv shell
여기 서 방금 네 번 째 단계 의 문제 가 발생 할 수 있 습 니 다.시스템 알림 은"utf-8"로 바 꿀 수 없습니다.방법 이 없습니다.컴퓨터 를 다시 시작 하 세 요.그리고 power shell 에 다시 들 어가 서 pipenv shell 을 실행 하려 고 합 니 다.
6.설치 에 필요 한 라 이브 러 리
이 때 포장 할 프로그램 에서 가 져 온 라 이브 러 리 에 따라 pipenv 환경 에서 다시 설치 합 니 다.
pipenv install pyinstaller
pipenv install openpyxl
pipenv install requests
설치 과정 이 비교적 느 릴 것 이 니 인내심 을 가지 고 기다 리 면 된다.
7.py 스 크 립 트 파일 을 새 디 렉 터 리 에 복사 하고 pyinstaller 를 다시 실행 합 니 다.방법,매개 변 수 는 예전 과 같 으 면 OK 입 니 다.
마지막 으로 pipenv 환경 에서 포 장 된 프로그램 은 6.6MB 크기 에 불과 하 다.200 여 줄 코드 의 스 크 립 트 에 있어 서 는 좀 커 보이 지만 이전 버 전에 비해 1/10 가까이 줄 어 들 어 겨우 받 아들 일 수 있다.
추가 지식:python 도구 pyinstaller 패키지 생 성 exe 파일 의 매우 큰 원인 분석(openpyxl)openpyxl
[python]python 의 포장 도구 pyinstaller 생 성 exe 매우 큰 원인 분석(openpyxl)openpyxl
-F 포장 해서 하나 에 200 M 이 넘 게 있어 요.

from tkinter import *
from tkinter.font import Font
from email.mime.text import MIMEText
from email.header import Header
import tkinter
import tkinter.messagebox
import tkinter.simpledialog
import tkinter.filedialog
import openpyxl
import smtplib
import threading
 
print(3*2)
한 줄 씩 지 울 때마다 가방 을 하나씩 싸 서 테스트 합 니 다.어떤 가방 은 꺼 내 도 아무런 영향 이 없다 는 것 을 발견 했다.

가방 이상 이 발견 되 었 습 니 다.이 가방 만 있 으 면 아주 큽 니 다-openpyxl

포장 시간 도 굉장히 길 어 요.

로그 검사:openpyxl 이 pandas numpy 와 관련 이 있 는 것 을 발견 하 였 습 니 다.
코드 를 따로 제시 하고 두 가지 방법 으로 호출 해 보 니 별 쓸모 가 없 었 다.

from openpyxl import load_workbook
#import openpyxl
workbook = openpyxl.load_workbook('data.xlsx')

200 여 m 야.

PyInstaller very big file size

win7(64bit) 

anaconda ( 3 )

python(3.6) 

pyinstaller (3.4.dev0+469f1fa19)

openpyxl (2.4.8) 

I've made simple code like this:
------code------------------------------------------
#import openpyxl
workbook = openpyxl.load_workbook('data.xlsx')
------code------------------------------------------

 File size (python files) is 1.0 KB.
 But when I create executable using PyInstaller, I get 200 MB file!
 About openpyxl..... Why the generated files are so big?

 Is there a way to decrease file size?
인터넷 에서 외국인 에 게 python 가상 기 계 를 설치 하 라 고 물 었 습 니 다.왜냐하면 우 리 는 Anaconda 를 설 치 했 기 때문에 그 안에 많은 라 이브 러 리 가 불필요 한 다른 라 이브 러 리 와 가방 에 연결 되 어 있 습 니 다.
일리 가 있다!
그래서 아예 노트북 한 대 로 순수 python 3.6 환경 을 설치 합 니 다.그리고 openpyxl 을 단독으로 내 려 놓 으 면 그때 유용 합 니 다.

다 담 은 후에 pip 로 pypiwin 32 를 계속 담 으 세 요.여기에 구덩이 가 하나 있다.
pip install pypiwin 32 를 사용 해 야 합 니 다.pip install pywin 32 가 아 닙 니 다.
설치 후 이름 모 를 방법 에 따라 이 openxyl 을 pyinstall 의 루트 디 렉 터 리 에 압축 을 푸 는 것 을 권장 합 니 다.잠시 만 요.도움 이 될 것 같다)
그리고 내 py 파일 을 포장 할 거 야.pyinstaller 루트 디 렉 터 리 에 도 넣 습 니 다.
pyinstaller-F mainGUIversion 5.py 패키지 시작.
포장 을 다 했 더 니 포장 이 완료 되 었 다.운행 이 안 돼 요.
cmd 창 에 직접 가서 실행 하면 가방 이 적 습 니 다.다음 그림 을 보 세 요.부족 한 것 은 pip 로 무엇 을 담 습 니까?이렇게 하면 python 원생 환경 을 오염 시 키 지 않 습 니 다.
Need pure python environment!!!
No Anaconda
예 를 들 어 이것 은 jdcal 가방 이 빠 진 것 입 니 다.

한 번 에 한 번 씩 포장 하고,한 번 에 실행 하면 적은 가방 을 발견 합 니 다.

결국 발견,ok!!!!마지막 포장 은 8m 도 안 됩 니 다.200 M 에서 8M 로 직접 압축 하여 임 무 를 완성 하 였 다.

운행 도 정상!

다음 날 부터 실험 을 시작 합 니 다.
가방 의 문제 인지 python 의 문제 인지 먼저 openpyxl 가방 을 pyinstaller 디 렉 터 리 에서 잘라 내 고 데스크 톱 에 직접 놓 습 니 다.지우 지 않 습 니 다.

실행 후 포장 이 가능 한 것 을 발 견 했 습 니 다.그러나 프로그램 이 잘못 실행 되 었 습 니 다."openpyxl 이 부족 합 니 다."오류 가 발생 했 습 니 다.

그래서 pip 패 키 지 를 설치 하기 시 작 했 습 니 다.설치 후 포장 을 실행 합 니 다.성공!

포장 성공!
이렇게 많은 절차 와 시 도 를 해 보 니결론 을 얻어 내다.pyinstaller 의 정확 한 포장 방법 은 두 가지 가 있 습 니 다.
첫 번 째 방법:포장 이 필요 한 프로그램 과 의존 하 는 모든 가방 을 pyinstaller 의 루트 디 렉 터 리 에 통일 시 키 고-F 로 포장 하면 성공 합 니 다.가방 이 하나 도 없어 서 는 안 됩 니 다!
두 번 째 방법:깨끗 한 python 환경 을 설치 한 다음 에 pip 를 테스트 하고 가방 이 적 으 면 바로 설치 합 니 다.
두 가지 방법 은 각각 천추 가 있 지만 두 번 째 방법 을 추천 합 니 다.이런 방법 은 상대 적 으로 간편 하기 때 문 입 니 다.특히 가방 간 의 의존 관 계 를 잘 모 르 는 상황 에서.
이상 의 이 문 제 는 pyinstaller 로 exe 파일 을 포장 하 는 것 이 너무 큽 니 다.pipenv 로 exe 를 축소 하 는 문 제 는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 실 수 있 고 많은 응원 바 랍 니 다.

좋은 웹페이지 즐겨찾기