#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