~mvo/ubuntu-sso-client/strawman-lp711413

« back to all changes in this revision

Viewing changes to README.windows

Updated the setup.py to generate a minimun .exe installation to be used on Windows.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
= Ubuntu Single Sign-On Client =
 
2
 
 
3
Ubuntu Single Sign-On Client has been ported to windows to allow Windows
 
4
applications to take advantage of the service. This README contains instructions
 
5
on how to build the project so that it can be distributed as a .exe file.
 
6
 
 
7
In order to be able to build a .exe for the client py2exe is used. The
 
8
following are a number of recommendations to follow to ensure that your
 
9
environment is correctly setup in order to use py2exe successfully.
 
10
 
 
11
== Egg support ==
 
12
 
 
13
As version 0.6.5 py2exe does not have egg support out of the box an therefore
 
14
when building the .exe file you have to work around this limitation. At the
 
15
moment the recommended way to work around this issue is to tell easy_install
 
16
to always unzip the eggs so that py2xe can work with them. In order to
 
17
unzip an egg when installing it with easy_install you can use the
 
18
--always-unzip option.
 
19
 
 
20
Example:
 
21
 
 
22
easy_install --always-unzip oauth
 
23
 
 
24
== PyQt issues ==
 
25
 
 
26
Do to the way that py2exe works, there are a number of issues that may happen
 
27
depending on the setup of you system.
 
28
 
 
29
=== PyQt and PySide ===
 
30
 
 
31
If you have PyQt and PySide py2exe will try to include both of them. The reason
 
32
for this to happen is due to the way in which py2exe looks for dependencies. The
 
33
module_finder form py2exe does not distinguish between normal imports and those
 
34
that are wrapped around a try/except block. This means that the following code
 
35
from the qtreactor will make py2exe believe that both are needed:
 
36
 
 
37
This is a dangerous situation because PyQt and PySide do have different release
 
38
cycles and normally do not depend on the same version of Qt. If in you system
 
39
you have the two libraries using different version of Qt the build package
 
40
might import dlls from different version which results in a runtime error.
 
41
 
 
42
There are two ways to solve this issue:
 
43
 
 
44
* Uninstall PySide
 
45
* Ensure that both libs do depend on the same version of Qt.
 
46
 
 
47
== PyQt and PyInstaller ===
 
48
 
 
49
PyInstaller has support for PyQt application out of the box. This means that
 
50
PyInstaller has the Qt dlls in its installation. As with the issue with PySide
 
51
it might happen that the dlls used by PyInstaller and the ones used by the PyQt
 
52
version installed in you machine differ in their version. In cases where
 
53
PyInstaller is present in you python path (for example in C:\Python27\Scripts)
 
54
py2exe will copy the dlls found in the PyInstaller directory for an unknown
 
55
reason. This will raise a runtime error complaining about the use of dlls from
 
56
different versions.
 
 
b'\\ No newline at end of file'