MetPX / sarracenia

https://MetPX.github.io/sarracenia
GNU General Public License v2.0
45 stars 22 forks source link

windows binary generation broken by dateparser dependency. #479

Closed petersilva closed 2 years ago

petersilva commented 2 years ago

Can no longer build packages for windows, because of a web of conflicting dependencies. There is no correct generic netifaces package generated, so have to pick one that is locked to python3.8.. so we must build on 3.8... which is the normal version on ubuntu 20.04. so far so good.

so build the binary with generate-win-installer, and we get a binary built:

Using lzma compression.

EXE header size:              244224 / 79360 bytes
Install code:                  25888 / 164336 bytes
Install data:               16773784 / 39062444 bytes
Uninstall code+data:           88427 / 186739 bytes
CRC (0xE739994F):                  4 / 4 bytes

Total size:                 17132327 / 39492883 bytes (43.3%)
Installer written to build/nsis/metpx-sr3_3.00.014.exe
fractal% 

but then we try to run it after extraction on windows

C:\Users\peter>sr3
Traceback (most recent call last):
  File "runpy.py", line 194, in _run_module_as_main
  File "runpy.py", line 87, in _run_code
  File "C:\Program Files\metpx-sr3\bin\sr3.exe\__main__.py", line 17, in <module>
  File "C:\Program Files\metpx-sr3\pkgs\sarracenia\sr.py", line 44, in <module>
    import sarracenia.config
  File "C:\Program Files\metpx-sr3\pkgs\sarracenia\config.py", line 50, in <module>
    import sarracenia.flow
  File "C:\Program Files\metpx-sr3\pkgs\sarracenia\flow\__init__.py", line 1602, in <module>
    import sarracenia.flow.poll
  File "C:\Program Files\metpx-sr3\pkgs\sarracenia\flow\poll.py", line 9, in <module>
    import dateparser
  File "C:\Program Files\metpx-sr3\pkgs\dateparser\__init__.py", line 4, in <module>
    from .date import DateDataParser
  File "C:\Program Files\metpx-sr3\pkgs\dateparser\date.py", line 13, in <module>
    from dateparser.date_parser import date_parser
  File "C:\Program Files\metpx-sr3\pkgs\dateparser\date_parser.py", line 11, in <module>
    from .parser import parse
  File "C:\Program Files\metpx-sr3\pkgs\dateparser\parser.py", line 10, in <module>
    from dateparser.utils.strptime import strptime
  File "C:\Program Files\metpx-sr3\pkgs\dateparser\utils\strptime.py", line 69, in <module>
    __strptime = patch_strptime()
  File "C:\Program Files\metpx-sr3\pkgs\dateparser\utils\strptime.py", line 40, in patch_strptime
    _strptime_spec.loader.exec_module(_strptime)
AttributeError: 'zipimporter' object has no attribute 'exec_module'

so I go look at that error and discover:

https://github.com/scrapinghub/dateparser/issues/849

which implies that we need to generate on python 3.10. but I don't have netifaces package for 3.10.

stuck.

petersilva commented 2 years ago

Can still install on windows with pip install.

petersilva commented 2 years ago

folded into #483 removing dependenciwa on borh dateparser and netifaces.