StatCan / aaw

Documentation for the Advanced Analytics Workspace Platform
https://statcan.github.io/aaw/
Other
68 stars 12 forks source link

BUG: Python environment Broken #893

Closed YannCoderre closed 2 years ago

YannCoderre commented 2 years ago

(From an email from Christopher Cottin - March 1, 2022)

Have some related issue(s) that require some AAW technical assistance. (Python expertise).

Baillargeon, Jonathan - ESMD/DMSE jonathan.baillargeon@statcan.gc.ca is having issue with AAW Python environment, we reached out in SLACK and made some progress, but this environment is still broken. (at least could recover hos source-code and was able to get the environment to start-up again, apparently the start-up script was broken as result of previous maintenance ) The SLACK technician, Jose, (very helpful) said he was not a Python expert. So, can we schedule a session with someone who is?

Jonathan is doing work with Mathematical Optimization problem solvers. Further, he was hoping 1) not only get his previous setup working again, but 2) also get other Python libraries set up too. Full context can be found here: https://jirab.statcan.ca/browse/DACSU-1032

YannCoderre commented 2 years ago

It is important to note that Jonathan was able to run and execute his code without any errors before. On January 31, 2022, Jonathan stated that his code does not work anymore.

User is getting this message when running his Python code: "Solving environment: failed with initial frozen solve. Retrying with flexible solve."

(more information to come)

Jonathon is also installing the following package: https://pypi.org/project/PySCIPOpt/ He is using the model.optimization function.

Jose-Matsuda commented 2 years ago

Trying to install that gives me an error I've never seen before

 pip install pyscipopt
Looking in indexes: https://jfrog.aaw.cloud.statcan.ca/artifactory/api/pypi/pypi-remote/simple
Collecting pyscipopt
  Using cached https://jfrog.aaw.cloud.statcan.ca/artifactory/api/pypi/pypi-remote/packages/packages/9a/93/6efffd97ca7f153c32be485197f945143e818eef3d6529b585ad707ee76e/PySCIPOpt-4.1.0.tar.gz (650 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: wheel in /opt/conda/lib/python3.8/site-packages (from pyscipopt) (0.37.0)
Building wheels for collected packages: pyscipopt
  Building wheel for pyscipopt (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /opt/conda/bin/python3.8 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/setup.py'"'"'; __file__='"'"'/tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-zxearkgu
       cwd: /tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/
  Complete output (38 lines):
  Assuming that SCIP is installed globally.

  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.8
  creating build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/Multidict.py -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/__init__.py -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/scip.pyx -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/scip.pxd -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/benders.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/benderscut.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/branchrule.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/nodesel.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/sepa.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/expr.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/lp.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/relax.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/pricer.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/propagator.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/event.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/cutsel.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/conshdlr.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/presol.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  copying src/pyscipopt/heuristic.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
  running build_ext
  building 'pyscipopt.scip' extension
  creating build/temp.linux-x86_64-3.8
  creating build/temp.linux-x86_64-3.8/src
  creating build/temp.linux-x86_64-3.8/src/pyscipopt
  /opt/conda/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -fPIC -I. -I/opt/conda/include/python3.8 -c src/pyscipopt/scip.c -o build/temp.linux-x86_64-3.8/src/pyscipopt/scip.o
  src/pyscipopt/scip.c:710:10: fatal error: scip/scip.h: No such file or directory
    710 | #include "scip/scip.h"
        |          ^~~~~~~~~~~~~
  compilation terminated.
  error: command '/opt/conda/bin/x86_64-conda-linux-gnu-cc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pyscipopt
  Running setup.py clean for pyscipopt
Failed to build pyscipopt
Installing collected packages: pyscipopt
    Running setup.py install for pyscipopt ... error
    ERROR: Command errored out with exit status 1:
     command: /opt/conda/bin/python3.8 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/setup.py'"'"'; __file__='"'"'/tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-s28_1tu3/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/jovyan/.local/include/python3.8/pyscipopt
         cwd: /tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/
    Complete output (40 lines):
    Assuming that SCIP is installed globally.

    running install
    /opt/conda/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.8
    creating build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/Multidict.py -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/__init__.py -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/scip.pyx -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/scip.pxd -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/benders.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/benderscut.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/branchrule.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/nodesel.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/sepa.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/expr.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/lp.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/relax.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/pricer.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/propagator.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/event.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/cutsel.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/conshdlr.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/presol.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    copying src/pyscipopt/heuristic.pxi -> build/lib.linux-x86_64-3.8/pyscipopt
    running build_ext
    building 'pyscipopt.scip' extension
    creating build/temp.linux-x86_64-3.8
    creating build/temp.linux-x86_64-3.8/src
    creating build/temp.linux-x86_64-3.8/src/pyscipopt
    /opt/conda/bin/x86_64-conda-linux-gnu-cc -Wno-unused-result -Wsign-compare -DNDEBUG -fwrapv -O2 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /opt/conda/include -fPIC -I. -I/opt/conda/include/python3.8 -c src/pyscipopt/scip.c -o build/temp.linux-x86_64-3.8/src/pyscipopt/scip.o
    src/pyscipopt/scip.c:710:10: fatal error: scip/scip.h: No such file or directory
      710 | #include "scip/scip.h"
          |          ^~~~~~~~~~~~~
    compilation terminated.
    error: command '/opt/conda/bin/x86_64-conda-linux-gnu-cc' failed with exit status 1
    ----------------------------------------
ERROR: Command errored out with exit status 1: /opt/conda/bin/python3.8 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/setup.py'"'"'; __file__='"'"'/tmp/pip-install-gkdlem6o/pyscipopt_2741477482254db1a74d7669a418603b/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-s28_1tu3/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/jovyan/.local/include/python3.8/pyscipopt Check the logs for full command output.

The artifactory logs give

pypi-remote downloading https://files.pythonhosted.org/packages/9a/93/6efffd97ca7f153c32be485197f945143e818eef3d6529b585ad707ee76e/PySCIPOpt-4.1.0.tar.gz 635.36 KB 
2022-03-01T19:16:12.934Z [jfrt ] [INFO ] [4937] [o.a.r.HttpRepo:451            ] [ttp-nio-8081-exec-23] - pypi-remote downloaded  https://files.pythonhosted.org/packages/9a/93/6efffd97ca7f153c32be485197f945143e818eef3d6529b585ad707ee76e/PySCIPOpt-4.1.0.tar.gz 635.36 KB at 5,030.72 KB/sec
2022-03-01T19:16:53.097Z [jfrt ] [WARN ] [49d37] [.r.ArtifactoryResponseBase:166] [ttp-nio-8081-exec-23] - Client Closed Request 499: java.io.IOException: Broken pipe

Though for what it's worth, I can conda install pyscipopt without errors

blairdrummond commented 2 years ago

Try installing with Conda

Screenshot from 2022-03-01 14-25-01

blairdrummond commented 2 years ago

@chuckbelisle It might be worth having the bot suggest using conda instead of pip

YannCoderre commented 2 years ago

The client issue has been resolved

YannCoderre commented 2 years ago

It seems that there might be a few issues:

Jonathan restarted a new notebook server : image: Jupiterlal-CPU, 1 cpu, 4.0Gi Jonathan connected to server He install through conda the following pkg: conda install --channel conda-forge pyscipopt We noticed that the new server installed had the newer packages Client was able to run his code.

Please note: Prior to this, Jonathan was running that were dated from 2 to 4 weeks ago.