[cctbxbb] Is there a schedule for the python3 migration or can cctbx.python already be built to be/use a python3 interpreter?

Jan M. Simons marten at ifk.rwth-aachen.de
Fri Jul 9 15:00:04 PDT 2021


Am 09.07.21 um 15:11 schrieb Billy Poon:
> Hi Jan,
> 
> Do you need to build cctbx from scratch? The cctbx has been available
> for Python 3 for a while now, but is using conda packages
> (https://docs.conda.io/en/latest/ <https://docs.conda.io/en/latest/>)
> for managing dependencies. Building the dependencies from scratch for
> multiple versions of Python 3 for multiple platforms was getting too
> complicated.
> 
> You can install cctbx as a conda package for Python 3.6 through 3.9 with
> support for macOS (Intel and Apple Silicon), linux, and Windows.
> Instructions can be found here
> (https://github.com/cctbx/cctbx_project#installation
> <https://github.com/cctbx/cctbx_project#installation>), but essentially
> it is just
> 
> conda install -c conda-forge cctbx-base 
> 
> to get it into an existing environment. The smtbx module will be
> available, but not fast_linalg yet.
> 
> Note that with a conda environment, you do not need to run any of the
> "setpaths" scripts to set it up. Just activate the environment and cctbx
> will be available in python.
> 
> There are also nightly builds of the conda packages on a separate
> channel (https://github.com/cctbx/cctbx_project#nightly-builds
> <https://github.com/cctbx/cctbx_project#nightly-builds>). The command
> above becomes
> 
> conda install -c cctbx-nightly -c conda-forge cctbx-base 
> 
> You can also build cctbx with Python 3 using conda packages as
> dependencies
> (https://github.com/cctbx/cctbx_project#building-a-development-version
> <https://github.com/cctbx/cctbx_project#building-a-development-version>). The
> bootstrap.py command becomes
> 
> python bootstrap.py --use-conda --python 38
> 
> This will install miniconda if conda is not already available on your
> system.

As I did not have conda installed I went for this option and at first I
encountered this:

===== Running in .: base
Location of conda installation not provided
Proceeding with a fresh installation
Downloading
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
Downloaded file to
/home/jan/Arbeit/cctbx-dev/Miniconda3-latest-Linux-x86_64.sh
Installing miniconda to "/home/jan/Arbeit/cctbx-dev/mc3"
/home/jan/Arbeit/cctbx-dev/mc3/conda.exe: error while loading shared
libraries: libz.so.1: failed to map segment from shared object
/home/jan/Arbeit/cctbx-dev/mc3/conda.exe: error while loading shared
libraries: libz.so.1: failed to map segment from shared object
Traceback (most recent call last):
  File "modules/cctbx_project/libtbx/auto_build/install_conda.py", line
1093, in <module>
    sys.exit(run())
  File "modules/cctbx_project/libtbx/auto_build/install_conda.py", line
1069, in run
    verbose=namespace.verbose)
  File "modules/cctbx_project/libtbx/auto_build/install_conda.py", line
326, in __init__
    self.conda_base = self.install_miniconda(prefix=self.root_dir)
  File "modules/cctbx_project/libtbx/auto_build/install_conda.py", line
543, in install_miniconda
    output = check_output(command_list, env=self.env)
  File
"/home/jan/Arbeit/cctbx-dev/modules/cctbx_project/libtbx/auto_build/installer_utils.py",
line 68, in check_output
    raise RuntimeError("Call to '%s' failed with exit code %d" %
(popenargs, retcode))
RuntimeError: Call to '(['/bin/sh',
'/home/jan/Arbeit/cctbx-dev/Miniconda3-latest-Linux-x86_64.sh', '-b -u
-p "/home/jan/Arbeit/cctbx-dev/mc3"'],)' failed with exit code 1
Process failed with return code 1


But after a little research [1] I found the cause to be a noexec /tmp.

Remounting /tmp exec made the bootstrap succeed and now I'm happy with

$ /home/jan/Arbeit/cctbx-dev/build/bin/cctbx.python
Python 3.8.6 | packaged by conda-forge | (default, Oct  7 2020, 19:08:05)
[GCC 7.5.0] on linux

So on to finally moving my codebase to Python3.

Thank you all for your support and have a nice weekend

Jan



[1]
https://stackoverflow.com/questions/60106630/conda-exe-error-while-loading-shared-libraries-libz-so-1


More information about the cctbxbb mailing list