We are running the beta build of ARTIQ on Windows (due to IT requirements). ARTIQ 8 install is no longer solving in Anaconda, so we can't get the latest patch of ARTIQ 8. We've tried doing clean installs of Anaconda, tried it in Mamba, etc. and it won't solve. This isn't the focus of this post, just wanted to give context.

We followed the beta manual's instructions on installing via MSYS2/MINGW64, but the metadata for ARTIQ does not seem to install properly, so commands such as artiq_master --version do not run. Here is the traceback:

$ artiq_master --version
Traceback (most recent call last):
  File "C:/msys64/mingw64/lib/python3.11/importlib/metadata/__init__.py", line 563, in from_name
    return next(cls.discover(name=name))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\msys64\mingw64\bin\artiq_master-script.py", line 33, in <module>
    sys.exit(load_entry_point('artiq==8.8418+3663a6b.beta', 'console_scripts', 'artiq_master')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\msys64\mingw64\bin\artiq_master-script.py", line 22, in importlib_load_entry_point
    for entry_point in distribution(dist_name).entry_points
                       ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/importlib/metadata/__init__.py", line 981, in distribution
    return Distribution.from_name(distribution_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:/msys64/mingw64/lib/python3.11/importlib/metadata/__init__.py", line 565, in from_name
    raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: No package metadata was found for artiq

This may point to MSYS2 is looking for ARTIQ in its Python 3.11 directories, but I haven't completely been able to figure it out. Other users that are using MSYS2 to install ARTIQ 8, did you have to do any other configuration to your shell or are there other steps to get this working outside of the beta manual's instructions?

Aside from that, we don't have a lot of arch experience on our experiment, so using ARTIQ via MSYS2 and using tools like pacman aren't (at least on the surface) very user friendly. Does anyone have any tips or resources on how to make the transition from Anaconda a little less bumpy?

Thank you!

I just updated both MSYS2 and anaconda on the beta channel and removed a llvmlite version constraint that is (hopefully) no longer necessary, please try again.

MSYS2 and conda are fundamentally the same things and many differences are merely syntactical (e.g. conda install package -> pacman -S package). What is the particular issue you are having with pacman?

Just tried a fresh install of artiq 8 beta via MSYS2 (updated by @sb10q) and got it working without those errors anymore. Also artiq and dependencies are now in python.3.11/site-packages.

After installing I also update the the package before running it by this command:

pacman -Syu

HI @sb10q and @fsagbuya , thanks for your replies. We are now able to get them to install in both MSYS2 and Anaconda now. It seems there is an issue with artiq_dashboard not being able to connect to localhost in this build, but that's out of the scope of this post (will make a new one or raise a Git issue if we determine it isn't on our end).

@sb10q Thanks for updating those. As far as pacman goes, I think we just needed to do a bit of learning over the weekend because we were unfamiliar with it. Searching for specific pacman/MSYS2 issues gets into the weeds of Stack Exchange very quickly, and we found general documentation a lot more useful. Perhaps linking to the MSYS2 package management documentation in the ARTIQ install documentation would be useful for newcomers.

@sb10q To follow up on this, there are some breaking problems with this build in Conda and MSYS2. They are packaged with Python 3.11, which breaks asyncio due to changes in coroutines (see the cpython changelog here). In conda, forcing a downgrade in the ARTIQ-8 environment to Python 3.10 fixed the issue. It seems from the nixbld site that Nix is using 3.10. Let me know if you'd like me to raise this as an issue on Git.