Hi Florian,
Great!
Yes, the conda_base directory is Intel because it would probably take a lot
of effort to get everything to natively compile on Apple Silicon. We do
have environments defined for Apple Silicon for Python 3. You can see them
in <installation directory>/modules/phenix/conda_envs. These files are just
standard text files created by conda for recreating environments exactly.
I'm currently in the process of updating them for the next release.
--
Billy K. Poon
Research Scientist, Molecular Biophysics and Integrated Bioimaging
Lawrence Berkeley National Laboratory
1 Cyclotron Road, M/S 33R0345
Berkeley, CA 94720
Fax: (510) 486-5909
Web: https://phenix-online.org
On Wed, Jun 22, 2022 at 3:48 PM Florian Nachon
Hi Billy,
Thanx for the instructions! I tried both the binary installer and the source installer as suggested, with the "—use-conda" flag and the installation worked well in both cases without messing up with /usr/bin.
The full installation was completed in 15 min on my M1 Max
Also, I installed arm64 anaconda with brew, but I noticed that conda_base was still Intel. And the generated Mac app is also Intel. I guess the explanation is that the default conda environment in the install script is osx-64 instead of osx-arm64?
Florian
It looks like you are using the source tarball.
Please use the binary installers for macOS. The install script will then use the python that we provide in the "conda_base" directory.
If you want to use the source installer, you can modify the ./install and ./lib/libtbx/auto_build/install_distribution.py scripts to use /usr/bin/python3 instead of /usr/bin/python. You will still need a "python" somewhere in your path and the easiest way would be to install miniconda from https://docs.conda.io/en/latest/miniconda.html and create a new conda environment with any python version ("conda create -n new_env python" will use Python 3.10). Activate the new environment ("conda activate new_env") and then you will have a "python" in your path. Then you can run
./install --prefix <prefix> --try-unsupported --use-conda --nproc <nproc>
It is recommended that you add the "--use-conda" flag since it is not likely that all the dependencies will compile from source. We have moved our dependencies to use conda so that we can more easily test different versions of Python 3. You can see that in our continuous integration output of cctbx at https://github.com/cctbx/cctbx_project.
We have conda packages for cctbx that are built to run natively on Apple Silicon and we will be doing the same for the next Phenix release.
-- Billy K. Poon Research Scientist, Molecular Biophysics and Integrated Bioimaging Lawrence Berkeley National Laboratory 1 Cyclotron Road, M/S 33R0345 Berkeley, CA 94720 Fax: (510) 486-5909 Web: https://phenix-online.org
On Tue, Jun 21, 2022 at 4:19 PM Florian Nachon
wrote: On 22 Jun 2022, at 00:55, Billy Poon
wrote: We ship our own python and 1.20.1 is the last Python 2 release. The next release will be in Python 3.
If I run sudo ./install --prefix=/Applications --try-unsupported then I get right away ./install: line 15: /usr/bin/python: No such file or directory
Obviously because there is no /usr/bin/python in Monterey but /usr/bin/python3… I can change ‘python' by ‘python3’ in the install script to go one step further, but it fails later because the install scripts always call ‘python’ instead of ‘python3’
Source installation specified. /bin/sh: python: command not found Traceback (most recent call last): File "./bin/install.py", line 268, in <module> installer(sys.argv[1:]).install() File "/Users/florian/Downloads/phenix-installer-1.20.1-4487-source/lib/libtbx/auto_build/install_distribution.py", line 198, in install self.install_from_source() File "/Users/florian/Downloads/phenix-installer-1.20.1-4487-source/lib/libtbx/auto_build/install_distribution.py", line 367, in install_from_source call(cmd, log=log) File "/Users/florian/Downloads/phenix-installer-1.20.1-4487-source/lib/libtbx/auto_build/installer_utils.py", line 55, in call raise RuntimeError("Call to '%s' failed with exit code %d" % (args, rc)) RuntimeError: Call to 'python modules/cctbx_project/libtbx/auto_build/bootstrap.py base build --builder phenix --nproc 10' failed with exit code 127
And an alias does not do the trick either.
So what should I do?
Florian