What is the best approach with compiling PySide ap

2019-03-22 00:15发布

问题:

I have lot of pain while compiling pyside code for Linux...much less for Windows, and my source is around 300kb. I would like to know what is the safest way to compile it.

  1. Is it the best to compile Qt, PySide bindings, Python 2.7, and every import with separate process?

1.1. If I do it this way, is it easier to trace errors?

  1. Does qt4-qmake have any reason to use it while compiling?

  2. Is it better to rewrite code for PyQt instead of Pyside?

  3. Are it depending about happy combination of some versions, for instance: ( Qt v4.8.2, pyside 1.0.1, python 2.7.3 ) ?

EDIT: By compiling mean to convert Python scripts into executable Windows/Linux programs, as py2exe, cx_Freeze or PyInstaller do.

I appreciate your suggestions.

回答1:

My only experience is with cx_freeze (using python 3.3). It works in Windows/Linux/OSX. A simple example can be found here (with its documentation): http://cx-freeze.readthedocs.org/en/latest/distutils.html#distutils

Another example:

from cx_Freeze import setup, Executable

# dependencies
build_exe_options = {
    "packages": ["os", "sys", "glob", "simplejson", "re", "atexit", "PySide.QtCore", "PySide.QtGui", "PySide.QtXml"],
    "include_files": [("./example/Ui/MainWindow.ui", "Ui/MainWindow.ui"),
                      ("./example/Ui/ExampleWidget.ui", "Ui/ExampleWidget.ui"),
                      ("./example/Ui/TestDialog.ui", "Ui/TestDialog.ui"),
                      ("./example/Resources/style.qss", "Ui/style.qss")], # this isn't necessary after all
    "excludes": ["Tkinter", "Tkconstants", "tcl"],
    "build_exe": "build",
    "icon": "./example/Resources/Icons/monitor.ico"
}

executable = [
    Executable("./bin/Example.py",
               base="Win32GUI",
               targetName="Example.exe",
               targetDir="build",
               copyDependentFiles=True)
]

setup(
    name="Example",
    version="0.1",
    description="Example", # Using the word "test" makes the exe to invoke the UAC in win7. WTH?
    author="Me",
    options={"build_exe": build_exe_options},
    executables=executable,
    requires=['PySide', 'cx_Freeze', 'simplejson']
)


回答2:

Follow the instructions given on the PySide page on PyPI.