Boulder-Cryogenic-Quantum-Testbed / scresonators

Data analysis code for cryogenic resonator measurement
MIT License
30 stars 25 forks source link

scresonators-fit library won't install on a fresh venv, perhaps dependency issues? #155

Closed jorger99 closed 1 year ago

jorger99 commented 1 year ago

From what I can tell, it seems that some of the modules on the requirements.txt are outdated relative to the others. I have been trying to download the library to use for some fitting on our data, but the setup.py process fails every time on a fresh python venv. I tried manually backdating my versions of setuptools and pip to around 01/2021, to match some of the older requirements in the requirements.txt but that also didn't work. The errors we are getting from trying to install dependencies from the requirements.txt file are either legacy-install-failure or metadata-generation-failed.

I eventually got the library to install by using the --no-dependencies flag, and then manually installing each module, but then any code I run from the library fails to execute due to deprecated functions.

I am working from my macOS 12.6.2, and my advisor also ran into the same issues on his windows computer.

jorger99 commented 1 year ago

going to use this library again for DCM fits and I forgot how I installed it the first time around. I will mess around with venvs and python package versions and try to reproduce the issues in the future, but for now here is my workaround:

0) start with a fresh venv in your working area, since a lot of these packages are outdated 1) clone scresonators from git directly, probably somewhere outside your workspace, git clone https://github.com/Boulder-Cryogenic-Quantum-Testbed/scresonators.git 2) remove the line from requirements.txt that says pandas==1.5.* 3) install the requirements manually, pip install -r ../<scresonators dir>/requirements.txt 4) now install scresonators with two flags, pip install --use-pep517 --no-dependencies scresonators-fit 5) good to go! import the library in your python code using import fit_resonator.resonator as scres

I have no clue what specifically made things work, I remember the issue being about old libraries that were dependencies of pandas/numpy that were incompatible with modern versions of setuptools/wheel/whatever. I'm treating it as supernatural and moving on :)