Как я могу установить psi4 в контейнер docker в среде jupyter?

#python #docker #jupyter-notebook #anaconda

Вопрос:

Я попытался установить psi4 для выполнения квантово-химических расчетов в контейнере jupyter/minimal-notebook.

Однако, как показано в блоке кода ниже, я не смог установить его из-за UnsatisfiableError .

 (base) jovyan@17285cef33b0:~/work$ conda create -n psi4 python=3.6
Collecting package metadata (current_repodata.json): done
Solving environment: done

....
(ellipsis)

(base) jovyan@17285cef33b0:~/work$ conda activate psi4

(psi4) jovyan@17285cef33b0:~/work$ conda install psi4 -c psi4
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment:  
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                                                                                                                  

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

(psi4) jovyan@17285cef33b0:~/work$ 

 

Это не показывало, чем он не был удовлетворен.

Я не хочу использовать anaconda, потому что мне нужно платить за коммерческое использование anaconda, и я хочу использовать conda-forge в качестве среды для запуска psi4. Я также хочу использовать docker, потому что я хочу иметь те же условия для запуска программы.

У вас есть какие-нибудь хорошие идеи, чтобы решить эту ошибку? Или есть какая-то среда, которая может выполнить мои желания?

Моя среда-Windows 10, и я использую серверную часть Docker Desktop WSL 2.

Ответ №1:

Предыдущий ответ был удален, потому что я только что вставил ссылку на свой пост в блоге. Я извлекаю основные этапы создания из поста в своем блоге и описываю его.

Я сам построил и установил Psi4 в контейнере docker. Я написал пост в своем блоге о том, как это сделать. Пожалуйста, смотрите следующий пост в блоге для получения более подробной информации.

https://solkul.hatenablog.com/entry/2021/04/23/002237

Вот основные шаги по его созданию.

В принципе, вы можете построить его в соответствии с этой документацией Psi4.

1. Клонировать репозиторий Psi4

Клонируйте репозиторий Psi4.

 (base) root$ git clone https://github.com/psi4/psi4.git
(base) root$ cd psi4
 

2. Создайте новую среду conda

Начните bash как root. Psi4 поддерживает только до python 3.7, поэтому я должен создать среду conda для python 3.7.

 (base) root$ conda create -n quantum python=3.7
(base) root$ conda activate quantum
(quantum) root$
 

3. Установите пакеты, необходимые для сборки

Введите следующую команду, чтобы установить пакеты, необходимые для сборки. В документации Psi4 перечислены инструменты и зависимости, необходимые для сборки.

 (quantum) root$ apt-get update
(quantum) root$ apt-get install -y build-essential cmake clang libssl-dev
(quantum) root$ apt-get install -y libopenblas-base libopenblas-dev
(quantum) root$ conda install -y numpy networkx pint pydantic
(quantum) root$ apt-get install -y libmpfr-dev libeigen3-dev
 

4. Купите и установите

Пришло время строить! Введите следующую команду для настройки и создания для сборки.

 (quantum) root /psi4$ mkdir build
(quantum) root /psi4$ cd build
(quantum) root /psi4/build$ cmake ..
 

Давайте строить!

 (quantum) root /psi4/build$ make -j`getconf _NPROCESSORS_ONLN`
 

Эта сборка занимает несколько часов.

После завершения сборки введите следующую команду, чтобы установить его.

 (quantum) root /psi4/build$ make install
 

5. Добавьте lib директорию установки в путь импорта python

В конфигурации по умолчанию должны быть установлены двоичные файлы, включая, библиотеки и т. Д. /usr/local/psi4 Чтобы использовать Psi4 в качестве модуля python, необходимо добавить /usr/local/psi4/lib его в путь импорта python. Вы также должны использовать Psi4 в среде quantum, которую я только что создал как среду python 3.7. Вы можете сделать это, добавляя директорию к sys.path каждому времени следующим образом.

 import sys
sys.path.append("usr/local/psi4/lib")
 

С этого момента вы можете импортировать Psi4.

 import psi4