aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2019-05-20 16:52:16 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-05-20 16:52:16 +0200
commit1aae4a386f21f318340396af7dc50908e86af7f0 (patch)
treebf7337ddf81e8382bd3963c68e3660c7b7e79557 /sources/pyside2
parent6d5ca98cad443cc3d10e28262d9a05ff47ba660a (diff)
parent8689054da961be4cede5cfae7c6a6f9d6efc36a4 (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Diffstat (limited to 'sources/pyside2')
-rw-r--r--sources/pyside2/cmake/Macros/PySideModules.cmake13
-rw-r--r--sources/pyside2/doc/deployment-pyinstaller.rst49
2 files changed, 62 insertions, 0 deletions
diff --git a/sources/pyside2/cmake/Macros/PySideModules.cmake b/sources/pyside2/cmake/Macros/PySideModules.cmake
index cbf401102..77dc8c8ac 100644
--- a/sources/pyside2/cmake/Macros/PySideModules.cmake
+++ b/sources/pyside2/cmake/Macros/PySideModules.cmake
@@ -169,6 +169,19 @@ macro(create_pyside_module)
set(ld_prefix "LD_LIBRARY_PATH=")
endif()
set(ld_prefix "${ld_prefix}${pysidebindings_BINARY_DIR}/libpyside${PATH_SEP}${SHIBOKEN_SHARED_LIBRARY_DIR}")
+
+ # On Windows we also need to propagate the whole environment PATH value, because pyside modules
+ # import Qt, and the Qt modules are found from PATH.
+ if(WIN32)
+ # Get the value of PATH with CMake separators.
+ file(TO_CMAKE_PATH "$ENV{PATH}" path_value)
+
+ # Replace the CMake list separators with "\;"s, to avoid the PATH values being
+ # interpreted as CMake list elements, we actually want to pass the whole string separated
+ # by ";" to the command line.
+ make_path(path_value "${path_value}")
+ string(APPEND ld_prefix "${PATH_SEP}${path_value}")
+ endif()
set(generate_pyi_options run --skip --sys-path
"${pysidebindings_BINARY_DIR}"
"${SHIBOKEN_PYTHON_MODULE_DIR}")
diff --git a/sources/pyside2/doc/deployment-pyinstaller.rst b/sources/pyside2/doc/deployment-pyinstaller.rst
index 8e6a76052..f361daf4a 100644
--- a/sources/pyside2/doc/deployment-pyinstaller.rst
+++ b/sources/pyside2/doc/deployment-pyinstaller.rst
@@ -122,3 +122,52 @@ an executable inside the `dist/` directory that you can execute::
cd dist/
./MyApplication
+
+
+Current Caveats To Be Aware Of
+==============================
+
+
+PyInstaller Problem
+-------------------
+
+As already mentioned, `PyInstaller` will pick a system installation of PySide2 or
+Shiboken2 instead of your virtualenv version without notice, if it exists.
+This may be no problem if those PySide2 or shiboken2 versions are the same.
+
+If you are working with different versions, this can result in frustrating sessions,
+when you think you are testing a new version, but `PyInstaller`
+is silently working with a different, older version.
+
+
+Problem with numpy in Python 2.7.16
+-----------------------------------
+
+A recent problem of PyInstaller is the appearance of Python 2.7.16 .
+This Python version creates a problem that is known from Python 3 as a `Tcl/Tk` problem.
+This does rarely show up in Python 3 because `Tcl/Tk` is seldom used with `PyInstaller.
+
+On Python 2.7.16, this problem is very much visible, since many people are using numpy.
+For some reason, installing `numpy` creates a dependency of `Tcl/Tk`, which can
+be circumvented only by explicitly excluding `Tcl/Tk` related things by adding
+this line to the analysis section of the spec-file::
+
+ excludes=['FixTk', 'tcl', 'tk', '_tkinter', 'tkinter', 'Tkinter'],
+
+
+Safety Instructions
+-------------------
+
+o When using `PyInstaller` with `virtualenv`, make sure that there is no system
+ installation of PySide2 or shiboken2.
+
+o Before compiling, use `pip -uninstall pyside2 shiboken2 -y` multiple times, until
+ none of the programs is found anymore.
+
+o Pip is usually a good tool. But to be 100 % sure, you should directly remove
+ the PySide2 and shiboken2 folders from site-packages.
+
+o Be sure to use the right version of pip. The safest way to really run the right
+ pip, use the Python that you mean: Instead of the pip command, better use::
+
+ <path/to/your/>python -m pip