2017-03-19 4 views
0

私はしかし、私はまだ200メガバイトの上にある私のアプリで全体PyQt5パッケージを取得し、py2appは不要modoleをPyQt5とアプリケーションバンドルを構築し、除外する使用しようとしていますpy2appが正しく

from setuptools import setup 

APP = ['browser.py'] 
DATA_FILES = [] 
OPTIONS = {'argv_emulation': True, 'includes': ['PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtWidgets'], 
     'excludes': ['PyQt5.QtDesigner', 'PyQt5.QtNetwork', 'PyQt5.QtOpenGL', 'PyQt5.QtScript', 'PyQt5.QtSql', 'PyQt5.QtTest','PyQt5.QtXml', 'PyQt5.QtHelp','QtHelp','QtSerialPort','QtHelp.so','PyQt5.QtHelp.so']} 

setup(
app=APP, 
data_files=DATA_FILES, 
options={'py2app': OPTIONS}, 
setup_requires=['py2app'], 

)モジュールを除外することはできませんここ

とは

from PyQt5.QtCore import QUrl 
from PyQt5.QtWidgets import QMainWindow,QApplication 
from PyQt5.QtGui import QIcon 
from PyQt5.QtWebEngineWidgets import QWebEngineView 

import sys 

class MainWindow(QMainWindow): 
    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 

     self.setWindowTitle('My Browser') 

     self.setWindowIcon(QIcon('icons/penguin.png')) 
     self.show() 


     self.browser = QWebEngineView() 
     url = 'https://www.google.com/' 

     self.browser.setUrl(QUrl(url)) 

     self.setCentralWidget(self.browser) 


app = QApplication(sys.argv) 

window = MainWindow() 

window.show() 

app.exec_() 

おかげbrowser.pyです!

答えて

0

更新:

私の現在の方法は、ちょうどPyQt5をカットし、唯一必要なパッケージを残しています。 PyQtをカットしたものに置き換えてください。

0

私はPyQt5プロジェクトで同じ問題に直面しました。

私が使用する解決策は、py2appがアプリケーションをビルドした後にファイルを削除することです。 私の場合、約100MiBを節約します。

https://github.com/barry-scott/scm-workbench/blob/master/Kit/macOS/build-app.sh

基本的な考え方のみ含ま記載されているPyQt5モジュールにある:

あなたは私がここで使用したコードを見ることができます。 使用するモジュールのリストを手動で設定します。