flet-dev / flet

Flet enables developers to easily build realtime web, mobile and desktop apps in Python. No frontend experience required.
https://flet.dev
Apache License 2.0
11.42k stars 445 forks source link

OSError: [WinError 123] When trying example program #495

Closed redace0001 closed 1 year ago

redace0001 commented 2 years ago

Description The example program crashes at startup. It seems from the traceback that file locations/addresses are not handled correctly somewhere.

Code example to reproduce the issue: Litterally the example program from the wiki

import flet
from flet import IconButton, Page, Row, TextField, icons

def main(page: Page):
    page.title = "Flet counter example"
    page.vertical_alignment = "center"

    txt_number = TextField(value="0", text_align="right", width=100)

    def minus_click(e):
        txt_number.value = int(txt_number.value) - 1
        page.update()

    def plus_click(e):
        txt_number.value = int(txt_number.value) + 1
        page.update()

    page.add(
        Row(
            [
                IconButton(icons.REMOVE, on_click=minus_click),
                txt_number,
                IconButton(icons.ADD, on_click=plus_click),
            ],
            alignment="center",
        )
    )

if __name__ == '__main__':
    flet.app(target=main)

Describe the results you received: Crash with following trace :

  File "C:\Users\User\Miniconda3\Scripts\flet-script.py", line 9, in <module>
    sys.exit(main())
  File "C:\Users\User\Miniconda3\lib\site-packages\flet\flet.py", line 668, in main
    my_observer.start()
  File "C:\Users\User\Miniconda3\lib\site-packages\watchdog\observers\api.py", line 262, in start
    emitter.start()
  File "C:\Users\User\Miniconda3\lib\site-packages\watchdog\utils\__init__.py", line 93, in start
    self.on_thread_start()
  File "C:\Users\User\Miniconda3\lib\site-packages\watchdog\observers\read_directory_changes.py", line 67, in on_thread_start
    self._handle = get_directory_handle(self.watch.path)
  File "C:\Users\User\Miniconda3\lib\site-packages\watchdog\observers\winapi.py", line 316, in get_directory_handle
    return CreateFileW(path, FILE_LIST_DIRECTORY, WATCHDOG_FILE_SHARE_FLAGS,
  File "C:\Users\User\Miniconda3\lib\site-packages\watchdog\observers\winapi.py", line 112, in _errcheck_handle
    raise ctypes.WinError()
OSError: [WinError 123] La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte.
C:\Users\User\Miniconda3\python.exe: can't open file 'C:\\Users\\User\\OneDrive - MyDrive\\Documents\\Tests\\test\\http:\\127.0.0.1:57010': [Errno 22] Invalid argument

Describe the results you expected: The program shouldn't have crashed and the window should have opened ?

Additional information you deem important (e.g. issue happens only occasionally): If I change the line to make it a browser app, it works without issue

Flet version (pip show flet):

0.1.62

Operating system: Windows 10 x64 Version 10.0.19044 Build 19044

Additional environment details: Was using PyCharm IDE

redace0001 commented 2 years ago

Forgot to translate the french part in the traceback ! It means : Syntax of file, directory or volume name is incorrect

FeodorFitsner commented 2 years ago

What command do you use to run Flet program?

redace0001 commented 2 years ago

I use the PyCharm console to launch it but using python script.py does the same thing

FeodorFitsner commented 2 years ago

What error do you get when running with python script.py?

redace0001 commented 2 years ago

I get the same error as with PyCharm. Exactly the same as a matter of fact. I don't know if that is because of my Miniconda Environment. I'll give you the complete list of packages when I have my computer around tomorrow.

FeodorFitsner commented 2 years ago

Yeah, I mean it could reach here:

File "C:\Users\User\Miniconda3\lib\site-packages\flet\flet.py", line 668, in main
    my_observer.start()

only if a program is started with flet script.py. Running with python script.py would never call... wait a second, there is main() method inside flet.py, but it's supposed to be called as a flet script only. Is it possible it's being called somehow in your environment? Is there any way to make sure it's only called when flet CLI is called?

redace0001 commented 2 years ago

Here is my conda environnement if this helps :

channels:
  - conda-forge
  - defaults
dependencies:
  - anyio=3.6.1=pyhd8ed1ab_1
  - aom=3.5.0=h63175ca_0
  - argon2-cffi=21.3.0=pyhd8ed1ab_0
  - argon2-cffi-bindings=21.2.0=py310he2412df_2
  - asttokens=2.0.8=pyhd8ed1ab_0
  - async_generator=1.10=py_0
  - attrs=22.1.0=pyh71513ae_1
  - babel=2.10.3=pyhd8ed1ab_0
  - backcall=0.2.0=pyh9f0ad1d_0
  - backports=1.0=py_2
  - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
  - bcrypt=3.2.2=py310he2412df_0
  - beartype=0.11.0=pyhd8ed1ab_0
  - beautifulsoup4=4.11.1=pyha770c72_0
  - bleach=5.0.1=pyhd8ed1ab_0
  - blinker=1.5=pyhd8ed1ab_0
  - brotlipy=0.7.0=py310he2412df_1004
  - bzip2=1.0.8=h8ffe710_4
  - ca-certificates=2022.9.24=h5b45459_0
  - certifi=2022.9.24=pyhd8ed1ab_0
  - cffi=1.15.1=py310hcbf9ad4_0
  - charset-normalizer=2.1.1=pyhd8ed1ab_0
  - colorama=0.4.5=pyhd8ed1ab_0
  - conda=22.9.0=py310h5588dad_1
  - conda-package-handling=1.9.0=py310h635b8f1_0
  - conda-tree=1.0.5=pyhd8ed1ab_0
  - console_shortcut=0.1.1=4
  - cryptography=38.0.2=py310h52f42fa_0
  - dav1d=1.0.0=h8ffe710_1
  - debugpy=1.6.3=py310h8a704f9_0
  - decorator=5.1.1=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - docutils=0.19=py310h5588dad_0
  - entrypoints=0.4=pyhd8ed1ab_0
  - exceptiongroup=1.0.0rc9=pyhd8ed1ab_0
  - executing=1.1.1=pyhd8ed1ab_0
  - flet=0.1.62=pyhd8ed1ab_0
  - flit-core=3.7.1=pyhd8ed1ab_0
  - freetype=2.12.1=h546665d_0
  - future=0.18.2=py310h5588dad_5
  - gettext=0.21.1=h5728263_0
  - glew=2.1.0=h39d44d4_2
  - glib=2.74.0=h12be248_0
  - glib-tools=2.74.0=h12be248_0
  - gst-plugins-base=1.20.3=h001b923_2
  - gstreamer=1.20.3=h6b5321d_2
  - icu=70.1=h0e60522_0
  - idna=3.4=pyhd8ed1ab_0
  - importlib-metadata=4.11.4=py310h5588dad_0
  - importlib_resources=5.10.0=pyhd8ed1ab_0
  - intel-openmp=2022.1.0=h57928b3_3787
  - ipykernel=6.16.0=pyh025b116_0
  - ipython=8.5.0=pyh08f2357_1
  - ipython_genutils=0.2.0=py_1
  - jedi=0.18.1=pyhd8ed1ab_2
  - jinja2=3.1.2=pyhd8ed1ab_1
  - jpeg=9e=h8ffe710_2
  - json5=0.9.5=pyh9f0ad1d_0
  - jsonschema=4.16.0=pyhd8ed1ab_0
  - jupyter_client=7.4.2=pyhd8ed1ab_0
  - jupyter_core=4.11.1=py310h5588dad_0
  - jupyter_server=1.21.0=pyhd8ed1ab_0
  - jupyterlab=3.4.8=pyhd8ed1ab_0
  - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
  - jupyterlab_server=2.16.0=pyhd8ed1ab_0
  - kivy=2.1.0=py310h6a7f093_1
  - krb5=1.19.3=h1176d77_0
  - lcms2=2.12=h2a16943_0
  - lerc=4.0.0=h63175ca_0
  - libavif=0.11.0=h8f5c5bc_0
  - libblas=3.9.0=16_win64_mkl
  - libcblas=3.9.0=16_win64_mkl
  - libclang=14.0.6=default_hf4acfee_0
  - libclang13=14.0.6=default_h8992b79_0
  - libdeflate=1.14=hcfcfb64_0
  - libffi=3.4.2=h8ffe710_5
  - libflac=1.3.4=h0e60522_0
  - libglib=2.74.0=h79619a9_0
  - libiconv=1.17=h8ffe710_0
  - liblapack=3.9.0=16_win64_mkl
  - libmad=0.15.1b=hfa6e2cd_1000
  - libogg=1.3.4=h8ffe710_1
  - libpng=1.6.38=h19919ed_0
  - libsodium=1.0.18=h8d14728_1
  - libsqlite=3.39.4=hcfcfb64_0
  - libtiff=4.4.0=h8e97e67_4
  - libvorbis=1.3.7=h0e60522_0
  - libwebp=1.2.4=h8ffe710_0
  - libwebp-base=1.2.4=h8ffe710_0
  - libxcb=1.13=hcd874cb_1004
  - libxml2=2.10.3=hc3477c8_0
  - libxslt=1.1.35=h34f844d_0
  - libzlib=1.2.13=hcfcfb64_4
  - llvmlite=0.39.1=py310hb84602e_0
  - m2w64-gcc-libgfortran=5.3.0=6
  - m2w64-gcc-libs=5.3.0=7
  - m2w64-gcc-libs-core=5.3.0=7
  - m2w64-gmp=6.1.0=2
  - m2w64-libwinpthread-git=5.0.0.4634.697f757=2
  - markupsafe=2.1.1=py310he2412df_1
  - matplotlib-inline=0.1.6=pyhd8ed1ab_0
  - menuinst=1.4.19=py310h5588dad_0
  - mistune=2.0.4=pyhd8ed1ab_0
  - mkl=2022.1.0=h6a75c08_874
  - msys2-conda-epoch=20160418=1
  - nbclassic=0.4.6=pyhd8ed1ab_0
  - nbclient=0.7.0=pyhd8ed1ab_0
  - nbconvert=7.2.1=pyhd8ed1ab_0
  - nbconvert-core=7.2.1=pyhd8ed1ab_0
  - nbconvert-pandoc=7.2.1=pyhd8ed1ab_0
  - nbformat=5.7.0=pyhd8ed1ab_0
  - nest-asyncio=1.5.6=pyhd8ed1ab_0
  - netifaces=0.11.0=py310he2412df_0
  - networkx=2.8.7=pyhd8ed1ab_0
  - notebook=6.4.12=pyha770c72_0
  - notebook-shim=0.2.0=pyhd8ed1ab_0
  - numba=0.56.3=py310h19bcfe9_0
  - numpy=1.23.3=py310h4a8f9c9_0
  - oauthlib=3.2.2=pyhd8ed1ab_0
  - openjpeg=2.5.0=hc9384bd_1
  - openssl=1.1.1q=h8ffe710_0
  - outcome=1.2.0=pyhd8ed1ab_0
  - packaging=21.3=pyhd8ed1ab_0
  - pandoc=2.19.2=h57928b3_0
  - pandocfilters=1.5.0=pyhd8ed1ab_0
  - parso=0.8.3=pyhd8ed1ab_0
  - pcre2=10.37=hdfff0fc_1
  - pickleshare=0.7.5=py_1003
  - pillow=9.2.0=py310h52929f7_2
  - pip=22.3=pyhd8ed1ab_0
  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
  - powershell_shortcut=0.0.1=3
  - prometheus_client=0.15.0=pyhd8ed1ab_0
  - prompt-toolkit=3.0.31=pyha770c72_0
  - psutil=5.9.2=py310h8d17308_0
  - pthread-stubs=0.4=hcd874cb_1001
  - pure_eval=0.2.2=pyhd8ed1ab_0
  - pycosat=0.6.3=py310he2412df_1010
  - pycparser=2.21=pyhd8ed1ab_0
  - pygments=2.13.0=pyhd8ed1ab_0
  - pyjwt=2.5.0=pyhd8ed1ab_0
  - pyopenssl=22.1.0=pyhd8ed1ab_0
  - pyparsing=3.0.9=pyhd8ed1ab_0
  - pyrsistent=0.18.1=py310he2412df_1
  - pyside2=5.15.6=py310h60c05ce_2
  - pysimplegui=4.60.4=pyhd8ed1ab_0
  - pysimpleguiweb=0.39.0=py_0
  - pysocks=1.7.1=pyh0701188_6
  - python=3.10.6=h9a09f29_0_cpython
  - python-dateutil=2.8.2=pyhd8ed1ab_0
  - python-fastjsonschema=2.16.2=pyhd8ed1ab_0
  - python_abi=3.10=2_cp310
  - pytz=2022.4=pyhd8ed1ab_0
  - pywin32=303=py310he2412df_0
  - pywinpty=2.0.8=py310h00ffb61_0
  - pyyaml=6.0=py310he2412df_4
  - pyzmq=24.0.1=py310hcd737a0_0
  - qt-main=5.15.6=hf0cf448_0
  - qt-webengine=5.15.4=h7325c83_3
  - remi=2022.7.27=pyhd8ed1ab_0
  - repath=0.9.0=pyhd8ed1ab_0
  - requests=2.28.1=pyhd8ed1ab_1
  - ruamel_yaml=0.15.80=py310he2412df_1007
  - sdl2=2.0.22=h0e60522_2
  - sdl2_image=2.6.1=h4fd72c5_1
  - sdl2_mixer=2.6.2=h0e60522_0
  - sdl2_ttf=2.0.15=h4636d2b_0
  - send2trash=1.8.0=pyhd8ed1ab_0
  - setuptools=65.5.0=pyhd8ed1ab_0
  - six=1.16.0=pyh6c4a22f_0
  - smpeg2=2.0.0=h6538335_1
  - sniffio=1.3.0=pyhd8ed1ab_0
  - sortedcontainers=2.4.0=pyhd8ed1ab_0
  - soupsieve=2.3.2.post1=pyhd8ed1ab_0
  - sqlite=3.39.4=hcfcfb64_0
  - stack_data=0.5.1=pyhd8ed1ab_0
  - tbb=2021.6.0=h91493d7_0
  - terminado=0.16.0=pyh08f2357_0
  - tinycss2=1.1.1=pyhd8ed1ab_0
  - tk=8.6.12=h8ffe710_0
  - tomli=2.0.1=pyhd8ed1ab_0
  - toolz=0.12.0=pyhd8ed1ab_0
  - tornado=6.2=py310he2412df_0
  - tqdm=4.64.1=pyhd8ed1ab_0
  - traitlets=5.4.0=pyhd8ed1ab_0
  - trio=0.22.0=py310h5588dad_0
  - typing_extensions=4.4.0=pyha770c72_0
  - tzdata=2022e=h191b570_0
  - ucrt=10.0.20348.0=h57928b3_0
  - urllib3=1.26.11=pyhd8ed1ab_0
  - vc=14.2=hac3ee0b_8
  - vs2015_runtime=14.29.30139=h890b9b1_8
  - watchdog=2.1.9=py310h5588dad_0
  - wcwidth=0.2.5=pyh9f0ad1d_2
  - webencodings=0.5.1=py_1
  - websocket-client=1.4.1=pyhd8ed1ab_0
  - wheel=0.37.1=pyhd8ed1ab_0
  - win_inet_pton=1.1.0=py310h5588dad_4
  - winpty=0.4.3=4
  - xorg-libxau=1.0.9=hcd874cb_0
  - xorg-libxdmcp=1.1.3=hcd874cb_0
  - xz=5.2.6=h8d14728_0
  - yaml=0.2.5=h8ffe710_2
  - zeromq=4.3.4=h0e60522_1
  - zipp=3.9.0=pyhd8ed1ab_0
  - zlib=1.2.13=hcfcfb64_4
  - zstd=1.5.2=h7755175_4
  - pip:
    - automat==20.2.0
    - constantly==15.1.0
    - hyperlink==21.0.0
    - incremental==21.3.0
    - ipaddress==1.0.23
    - msgpack-python==0.5.6
    - ntplib==0.4.0
    - psgdemos==1.11.0
    - pyroute2==0.7.2
    - python3-pip-autoremove==0.9.1
    - twisted==22.4.0
    - twisted-iocpsupport==1.0.2
    - umsgpack==0.1.0
    - zope-interface==5.4.0

I can't really provide any other clue as the only thing I'm doing is launching the example program like any other script I've ever launched before. If I launch it in my browser by changing the last line, it works without issue so it's probably a problem related to the "internal" window tool. Hope this helps somehow. If you need some other information to investigate the issue, feel free to ask.

redace0001 commented 2 years ago

Running with python script.py would never call... wait a second, there is main() method inside flet.py, but it's supposed to be called as a flet script only. Is it possible it's being called somehow in your environment? Is there any way to make sure it's only called when flet CLI is called?

I don't know but if I try to launch the same script with "flet" instead of "python" flet script.py. I get the exact same issue with the same error message

asteppke commented 1 year ago

I have a very similar issue here. Installed flet using conda install flet from conda forge (flet version 0.2.2).

Running minimal program:

import flet
from flet import Page, TextField

def main(page: Page):
    page.title = "Flet Hello World"
    page.vertical_alignment = "center"

    txt_number = TextField(value="0", text_align="right", width=100)

flet.app(target=main)

with either flet flet_minimal.py or python flet_minimal.py leads only to


python flet_minimal.py
Traceback (most recent call last):
  File "C:\tools\miniconda3\envs\jupyter\Scripts\flet-script.py", line 9, in <module>
    sys.exit(main())
  File "C:\tools\miniconda3\envs\jupyter\lib\site-packages\flet\flet.py", line 668, in main
    my_observer.start()
  File "C:\tools\miniconda3\envs\jupyter\lib\site-packages\watchdog\observers\api.py", line 262, in start
    emitter.start()
  File "C:\tools\miniconda3\envs\jupyter\lib\site-packages\watchdog\utils\__init__.py", line 93, in start
    self.on_thread_start()
  File "C:\tools\miniconda3\envs\jupyter\lib\site-packages\watchdog\observers\read_directory_changes.py", line 67, in on_thread_start
    self._handle = get_directory_handle(self.watch.path)
  File "C:\tools\miniconda3\envs\jupyter\lib\site-packages\watchdog\observers\winapi.py", line 316, in get_directory_handle
    return CreateFileW(path, FILE_LIST_DIRECTORY, WATCHDOG_FILE_SHARE_FLAGS,
  File "C:\tools\miniconda3\envs\jupyter\lib\site-packages\watchdog\observers\winapi.py", line 112, in _errcheck_handle
    raise ctypes.WinError()
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect.
C:\tools\miniconda3\envs\jupyter\python.exe: can't open file 'C:\\dev\\flet\\http:\\127.0.0.1:64278': [Errno 22] Invalid argument````
FeodorFitsner commented 1 year ago

Looks like I know how to fix that issue.

@asteppke Do you have bin directory inside C:\tools\miniconda3\envs\jupyter\lib\site-packages\flet?

asteppke commented 1 year ago

@FeodorFitsner Thank you for looking into this so quickly! I don't have a bin directory in C:\tools\miniconda3\envs\jupyter\lib\site-packages\flet.

FeodorFitsner commented 1 year ago

Hm, it looks like conda installs a source package from PyPi instead of download a wheel with pre-built binaries. Could you please uninstall flet package, install it again and paste me the output from a terminal here? Thanks!

asteppke commented 1 year ago

Sure, I uninstalled flet and then reinstalled it using conda install --verbose flet to get a bit more debug information.

The output:

Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done
INFO conda.core.link:__init__(171): initializing UnlinkLinkTransaction with
  target_prefix: C:\tools\miniconda3\envs\jupyter
  unlink_precs:

  link_precs:
    conda-forge/win-64::yaml-0.2.5-h8ffe710_2
    conda-forge/noarch::beartype-0.11.0-pyhd8ed1ab_0
    conda-forge/noarch::blinker-1.5-pyhd8ed1ab_0
    conda-forge/noarch::pyjwt-2.6.0-pyhd8ed1ab_0
    conda-forge/win-64::pyyaml-6.0-py310h8d17308_5
    conda-forge/noarch::repath-0.9.0-pyhd8ed1ab_0
    conda-forge/win-64::watchdog-2.1.9-py310h5588dad_1
    conda-forge/noarch::oauthlib-3.2.2-pyhd8ed1ab_0
    conda-forge/noarch::flet-0.2.2-pyhd8ed1ab_0

## Package Plan ##

  environment location: C:\tools\miniconda3\envs\jupyter

  added / updated specs:
    - flet

The following NEW packages will be INSTALLED:

  beartype           conda-forge/noarch::beartype-0.11.0-pyhd8ed1ab_0 None
  blinker            conda-forge/noarch::blinker-1.5-pyhd8ed1ab_0 None
  flet               conda-forge/noarch::flet-0.2.2-pyhd8ed1ab_0 None
  oauthlib           conda-forge/noarch::oauthlib-3.2.2-pyhd8ed1ab_0 None
  pyjwt              conda-forge/noarch::pyjwt-2.6.0-pyhd8ed1ab_0 None
  pyyaml             conda-forge/win-64::pyyaml-6.0-py310h8d17308_5 None
  repath             conda-forge/noarch::repath-0.9.0-pyhd8ed1ab_0 None
  watchdog           conda-forge/win-64::watchdog-2.1.9-py310h5588dad_1 None
  yaml               conda-forge/win-64::yaml-0.2.5-h8ffe710_2 None

Proceed ([y]/n)?

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::yaml-0.2.5-h8ffe710_2 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\yaml-0.2.5-h8ffe710_2

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::beartype-0.11.0-pyhd8ed1ab_0 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\beartype-0.11.0-pyhd8ed1ab_0

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::blinker-1.5-pyhd8ed1ab_0 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\blinker-1.5-pyhd8ed1ab_0

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::pyjwt-2.6.0-pyhd8ed1ab_0 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\pyjwt-2.6.0-pyhd8ed1ab_0

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::pyyaml-6.0-py310h8d17308_5 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\pyyaml-6.0-py310h8d17308_5

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::repath-0.9.0-pyhd8ed1ab_0 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\repath-0.9.0-pyhd8ed1ab_0

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::watchdog-2.1.9-py310h5588dad_1 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\watchdog-2.1.9-py310h5588dad_1

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::oauthlib-3.2.2-pyhd8ed1ab_0 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\oauthlib-3.2.2-pyhd8ed1ab_0

INFO conda.core.link:_execute_actions(774): ===> LINKING PACKAGE: conda-forge::flet-0.2.2-pyhd8ed1ab_0 <===
  prefix=C:\tools\miniconda3\envs\jupyter
  source=C:\tools\miniconda3\pkgs\flet-0.2.2-pyhd8ed1ab_0

done
Retrieving notices: ...working... INFO conda.notices.http:get_channel_notice_response(67): Received 404 when trying to GET https://repo.anaconda.com/pkgs/main/notices.json
INFO conda.notices.http:get_channel_notice_response(67): Received 404 when trying to GET https://repo.anaconda.com/pkgs/msys2/notices.json
INFO conda.notices.http:get_channel_notice_response(67): Received 404 when trying to GET https://conda.anaconda.org/conda-forge/notices.json
INFO conda.notices.http:get_channel_notice_response(67): Received 404 when trying to GET https://repo.anaconda.com/pkgs/r/notices.json
done

After that in the directory is the source but no bin subdirectory:

C:\tools\miniconda3\envs\jupyter\Lib\site-packages\flet>ls
__init__.py           callable_control.py     divider.py                 form_field_control.py  navigation_rail.py         responsive_row.py   text_style.py
__pycache__           card.py                 drag_target.py             gesture_detector.py    outlined_button.py         row.py              textfield.py
__pyinstaller         checkbox.py             draggable.py               gradients.py           padding.py                 security.py         theme.py
alert_dialog.py       circle_avatar.py        dropdown.py                grid_view.py           page.py                    semantics.py        tooltip.py
alignment.py          client_storage.py       elevated_button.py         haptic_feedback.py     plotly_chart.py            session_storage.py  transform.py
animated_switcher.py  clipboard.py            embed_json_encoder.py      icon.py                popup_menu_button.py       shader_mask.py      transparent_pointer.py
animation.py          colors.py               event.py                   icon_button.py         progress_bar.py            shake_detector.py   types.py
app_bar.py            column.py               event_handler.py           icons.py               progress_ring.py           slider.py           user_control.py
audio.py              connection.py           file_picker.py             image.py               protocol.py                snack_bar.py        utils.py
auth                  constants.py            filled_button.py           list_tile.py           pubsub.py                  stack.py            version.py
banner.py             constrained_control.py  filled_tonal_button.py     list_view.py           querystring.py             switch.py           vertical_divider.py
border.py             container.py            flet.py                    margin.py              radio.py                   tabs.py             view.py
border_radius.py      control.py              flet_app.py                markdown.py            radio_group.py             template_route.py   window_drag_area.py
bottom_sheet.py       control_event.py        floating_action_button.py  matplotlib_chart.py    reconnecting_websocket.py  text.py
buttons.py            datatable.py            focus.py                   navigation_bar.py      ref.py                     text_button.py

When looking at the corresponding conda package in https://anaconda.org/conda-forge/flet/files I also do not see any additional binaries in the package. So it seems the conda package just does not include binaries at all (it is only ~150kB after all).

Then trying the pip route instead with all the packages above already installed (pip install flet --upgrade --force-reinstall --no-deps) leads to success: image

FeodorFitsner commented 1 year ago

I didn't know Conda is copying packages into its own repository. Yes, it looks like it's a source package. I'm going to fix that issue anyway as there are many conda users.

asteppke commented 1 year ago

@FeodorFitsner: Fantastic, definitely appreciating the effort to make this available to the wider community and for flet in general.

redace0001 commented 1 year ago

Can confirm that installing with pip instead of conda solves the problem

thewchan commented 1 year ago

@FeodorFitsner Hello! I've been meaning to ping you about our effort to bring this over to Conda Forge, if you'd like we can add you as a maintainer to the feedstock over at Conda Forge. I probably need some pointers from you all to figure out how to resolve this anyway? https://github.com/conda-forge/flet-feedstock

FeodorFitsner commented 1 year ago

Is Conda Forge the current way people installing Flet for conda? How do new versions of package appear there? Is it possible to make conda installing binary wheels instead of source package? Can you explain please?

thewchan commented 1 year ago

Yes, Conda Forge is the community maintained repo via Conda. You may have heard of Anaconda which is the enterprise/managed version of the repo using Conda. New version so package are automatically detected from upstream, and if the recipe needs updating maintainers will go in and update the yaml recipe. It is unfortunately not possible to have package on Conda Forge to be installed via wheel instead of source distribution. But, there are flexibility to include build scripts to build out binaries from source.

FeodorFitsner commented 1 year ago

Nice, thank you for your efforts providing Flet package on Conda platform!

You are saying that source distribution can include build scripts. Can we use that ability to just download pre-built binaries from GitHub project releases?

thewchan commented 1 year ago

I'd have to check to be sure but my sense is no; all needed resource must be either available already in the sdist, or already as a package on Conda Forge.

thewchan commented 1 year ago

therefore, one possibility is that the binary is build out as another package on conda, and the actual flet package will reference and include that downstream

FeodorFitsner commented 1 year ago

It's been fixed in Flet 0.2.4 release.