User Tools

Site Tools


proj:wininstallers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
proj:wininstallers [2020/12/09 16:24]
114.23.208.115 [Get dev toolchain working e.g. eclipse, git]
proj:wininstallers [2022/08/14 05:15] (current)
151.210.130.23 [Set launch.py dependency imports]
Line 28: Line 28:
   * Change the version at the top of In D:​\sofa_dev_win\packaging\1 sofastats.nsi:​   * Change the version at the top of In D:​\sofa_dev_win\packaging\1 sofastats.nsi:​
  
-  !define SOFA_VERSION "1.5.3"+  !define SOFA_VERSION "1.5.4"
  
   * In D:​\sofa_dev_win\packaging right click on  "1 sofastats.nsi"​ and "​compile NSIS script"​ then click on "Test Installer"​ button.   * In D:​\sofa_dev_win\packaging right click on  "1 sofastats.nsi"​ and "​compile NSIS script"​ then click on "Test Installer"​ button.
Line 46: Line 46:
  
   * **sofastatistics** (actually, don't make it directly - instead, add it when cloning the git repo). This is the code. Can make changes here to get SOFA working on Windows and push the changes up into origin. Update this folder then copy across contents to sofa4packaging/​sofastats to keep the version to be packaged up-to-date   * **sofastatistics** (actually, don't make it directly - instead, add it when cloning the git repo). This is the code. Can make changes here to get SOFA working on Windows and push the changes up into origin. Update this folder then copy across contents to sofa4packaging/​sofastats to keep the version to be packaged up-to-date
-  * **dependencies** - binaries such as wkhtmltopdf.exe and specific dependencies of those binaries e.g. delegates.xml (needed by convert.exe) +  * **dependencies** - binaries such as wkhtmltopdf.exe and specific dependencies of those binaries e.g. delegates.xml (needed by convert.exe). You'll find them under sofa_win/​sofa_dev_win/​dependencies on the Ubuntu dev machine. Keep the Ubuntu dev machine versions up-to-date with what is used on the Windows machine when developing there and running SOFA unpackaged. 
-  * **packaging** - put all the files managing the actual building of packages e.g. spec files, nsi files etc. +  * **packaging** - put all the files managing the actual building of packages e.g. spec files, nsi files etc. You'll find them under sofa_win/​sofa_dev_win/​packaging on the Ubuntu dev machine
-  * **sofa4packaging** - put contents of sofastatistics ​under the packaging/​sofastats ​folder and add launch.py, import2run.py,​ and sofastats.spec as well from /packaging. Leave behind __pycache__,​ app.fil and sofastats.pot.+  * **sofa4packaging** - put contents of sofastatistics folder and add launch.py, import2run.py,​ and sofastats.spec as well from /packaging. Leave behind __pycache__,​ app.fil and sofastats.pot.
   * **store** - put junk here to avoid polluting / over-complicating other folders. ​   * **store** - put junk here to avoid polluting / over-complicating other folders. ​
  
 ==== Python and dependencies installed ==== ==== Python and dependencies installed ====
  
-Set up prerequisites for running SOFA working on Windows at all - install latest version of Python 3 e.g. 3.9 (https://​www.python.org/​downloads/​). Allow Python to be set in PATH so don't need to specify full path to python exe every time. Allow to be installed for all users. Also install all required pip and system dependencies (perhaps PostgreSQL). See list of dependencies further down under "Set launch.py dependency imports"​. Note pip install Pillow not PIL; matplotlib not pylab; pywin32 to enable associated imports etc. Have to translate from import requirements to module requirements. Usually straight forward.+Set up prerequisites for running SOFA working on Windows at all - install latest version of Python 3 e.g. 3.9 (https://​www.python.org/​downloads/​). Allow Python to be set in PATH so don't need to specify full path to python exe every time. Allow to be installed for all users. Also install all required pip and system dependencies (perhaps PostgreSQL). See list of dependencies further down under "Set launch.py dependency imports"​. Note pip install Pillow not PIL; matplotlib not pylab; pywin32 to enable associated imports ​(and https://​github.com/​KBNLresearch/​iromlab/​issues/​100) ​etc. Have to translate from import requirements to module requirements. Usually straight forward.
  
 Target pip installations at the python you will be building against (possibly only one). No need to be admin for pip installations unless Python was installed as admin. Target pip installations at the python you will be building against (possibly only one). No need to be admin for pip installations unless Python was installed as admin.
Line 77: Line 77:
 === wkhtmltopdf (for HTML to PDF) === === wkhtmltopdf (for HTML to PDF) ===
  
-wkhtmltopdf.exe - download installer from https://​wkhtmltopdf.org/​downloads.html then go to installed location e.g. C:\Program Files\wkhtmltopdf and put copy in D:​\sofa_dev_win\store and under D:​\sofa_dev_win\packaging\sofastats+wkhtmltopdf.exe - download installer from https://​wkhtmltopdf.org/​downloads.html then go to installed location e.g. C:\Program Files\wkhtmltopdf and put copy in D:​\sofa_dev_win\store and under D:​\sofa_dev_win\sofa4packaging\sofastats
  
 === convert (for PDF to PNG) === === convert (for PDF to PNG) ===
Line 116: Line 116:
 Extras if paint self in corner with SSH key: https://​stackoverflow.com/​questions/​50918607/​remove-cached-password-for-git-on-windows Reinstalling won't solve it. You will have to update it in your Credential Manager. I.e. go to Control Panel > User Accounts > Credential Manager > Windows Credentials. You will see Git credentials in the list (e.g. git:​https://​...). Click on it, update the password, and execute git pull/push command from your Git bash and it it won't throw any error message. Extras if paint self in corner with SSH key: https://​stackoverflow.com/​questions/​50918607/​remove-cached-password-for-git-on-windows Reinstalling won't solve it. You will have to update it in your Credential Manager. I.e. go to Control Panel > User Accounts > Credential Manager > Windows Credentials. You will see Git credentials in the list (e.g. git:​https://​...). Click on it, update the password, and execute git pull/push command from your Git bash and it it won't throw any error message.
  
-Then get latest SOFA code using git:+Then get latest SOFA code using git within Git Cmd:
  
-  ​cd D:\sofa_dev_win+  D: 
 +  cd sofa_dev_win
   git clone https://​git.launchpad.net/​sofastatistics   git clone https://​git.launchpad.net/​sofastatistics
  
 ==== Get SOFA working on Windows ==== ==== Get SOFA working on Windows ====
  
-  cd "​D:​\sofa_dev_win\sofastatistics\sofastats+  cd "​D:​\sofa_dev_win\sofastatistics\"​ 
-  python start.py+  python ​-m sofastats.start 
 +  
 +Note - SOFA puts parent path into sys.path so we start in the same folder as start.py
  
 Iron out inevitable bugs. Iron out inevitable bugs.
Line 142: Line 145:
 ==== Set launch.py dependency imports ==== ==== Set launch.py dependency imports ====
  
-Run special script ​<specify properly here> ​to identify actual dependencies so they can be called by launch.py +Run special script ​sofa_dev_win/​packaging/​import_dependencies.py ​to identify actual dependencies so they can be called by launch.py
- +
-TODO: update launch.py e.g. change to pyodbc+
  
   #import CUBRID-Python ## 2014 Python 2 only   #import CUBRID-Python ## 2014 Python 2 only
-  import PIL  ## actually ​pillow ​installed+  import PIL  ## actually ​Pillow ​installed
   import PyPDF2   import PyPDF2
-  import adodbapi+  import adodbapi ​ ## part of pywin32 now
   import agw   import agw
   import numpy   import numpy
Line 187: Line 188:
 Otherwise errors like: ModuleNotFoundError:​ No module named '​wx.lib.agw.hypertreelist'​ Otherwise errors like: ModuleNotFoundError:​ No module named '​wx.lib.agw.hypertreelist'​
  
-==== Identify Windows C Runtime (CRT) dependency path ====+==== Identify Windows C Runtime (CRT) dependency path (nothing to install) ​====
  
 This dependency is required if using Python >= 3.5 and Windows systems < Windows 10. I.e. it is required. This dependency is required if using Python >= 3.5 and Windows systems < Windows 10. I.e. it is required.
Line 204: Line 205:
  
 ==== Run pyinstaller for full run (making spec and using) ==== ==== Run pyinstaller for full run (making spec and using) ====
 +
 +Note - sofa_win_dev/​sofa4packaging/​sofastats must contain latest code plus dependencies plus launch.py, import2run.py,​ and sofastats.spec as well from /packaging. Leave behind pycache, app.fil and sofastats.pot.
  
 Note - usually people only use the --onedir option to start with for debugging reasons and the --onefile option later. Note - usually people only use the --onedir option to start with for debugging reasons and the --onefile option later.
Line 269: Line 272:
   pyinstaller sofastats.spec   pyinstaller sofastats.spec
  
-Shift all D:​\sofa_dev_win\sofa4packaging\sofastats\ in (except for __pycache__build, or dist)Folder already named sofastats ​because of spec edits. +Note - sofa_win_dev/​sofa4packaging/sofastats ​must contain latest code plus dependencies plus launch.pyimport2run.py, and sofastats.spec as well from /packaging. Leave behind pycache, app.fil and sofastats.pot.
 ==== Test binary and SOFA code folders on clean machine ==== ==== Test binary and SOFA code folders on clean machine ====
  
Line 278: Line 280:
 ==== Make NSIS installer ==== ==== Make NSIS installer ====
  
-Use UltraModernUI+Install NSIS https://​nsis.sourceforge.io/​Download
  
-Get latest version from [[https://​sourceforge.net/​projects/​ultramodernui/​files/​UltraModernUI/​]]+Use UltraModernUI - get latest version from [[https://​sourceforge.net/​projects/​ultramodernui/​files/​UltraModernUI/​]]
  
 Note - don't need to specify every file - can just use the recursive syntax Note - don't need to specify every file - can just use the recursive syntax
proj/wininstallers.1607549071.txt.gz · Last modified: 2020/12/09 16:24 by 114.23.208.115