Как установить MEEP на Windows 11 с использованием WSL?

Вопрос или проблема

Мне нужно установить MEEP на рабочем ноутбуке, это значит, что я не могу использовать Conda из-за лицензионных вопросов. Таким образом, я понимаю, что следующим лучшим выбором будет установка через WSL. После попытки установить его на WSL я получаю:

$ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Все пакеты обновлены.

$ sudo apt install meep
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Пакет meep недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника

E: Пакет 'meep' не имеет кандидата на установку

Но я вижу на сайте Ubuntu, что пакет существует.
И здесь я прочитал, что это может быть проблема Gui, но я понимаю, что это больше не проблема для WSL на Windows 11. Я даже протестировал это, успешно запустив графический интерфейс DiffPDF.

Более того,

$ cat /etc/issue
Ubuntu 24.04.1 LTS \n \l

Конец файла ubuntu.sources:

Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

## Обновления безопасности Ubuntu. Кроме URIs и Suites,
## это должно отражать ваши выборы в предыдущем разделе.
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Любая помощь будет greatly appreciated!

Вы можете найти подробные инструкции по Установке MEEP на Linux Subsystem здесь:

https://github.com/NanoComp/meep/discussions/2423


1 Установите Ubuntu (с WSL версией 2): используйте магазин Microsoft для загрузки и установки дистрибутива
https://learn.microsoft.com/en-us/windows/wsl/install
https://towardsdatascience.com/setting-up-a-data-science-environment-using-windows-subsystem-for-linux-wsl-c4b390803dd

2 Установите Conda (Miniconda):
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p miniconda3
export PATH=miniconda3/bin:$PATH —- путь к папке bin miniconda3

2.1 В случае, если базовая (корневая) версия не появляется в терминале:
~/miniconda3/bin/conda init bash (рекомендуется)
~/miniconda3/bin/conda init zsh (рекомендуется)
или
export PATH=/home/<user /miniconda3/bin:$PATH
или
source /home/<user /miniconda3/bin/activate

Эта команда добавит команду в ” ” в файл bashrc, чтобы каждый раз при запуске ubuntu выполнялся код:
echo “source /home/<user /miniconda3/bin/activate” >> ~/.bashrc

Установите meep из
-https://meep-hr.readthedocs.io/en/stable/Installation/
или
-https://meep.readthedocs.io/en/latest/Installation/ (рекомендуется)
Коды скопированы здесь для удобства (3.1 и 3.2).

3.1 Meep:
conda create -n meep -c chogan -c conda-forge pymeep
source activate pmeep
или
conda create -n meep -c conda-forge pymeep pymeep-extras (рекомендуется)
source activate meep

3.2 Параллельный Meep:
conda create -n pmeep -c chogan -c conda-forge pymeep-parallel
source activate pmeep
или
conda create -n pmeep -c conda-forge pymeep==mpi_mpich_ (рекомендуется)
source activate pmeep

используйте следующие коды, если вы хотите установить пакеты в окружении meep:
conda install -c conda-forge <some-package>

4.1 установите jupyterlab в окружении meep
conda activate meep
conda install -c conda-forge jupyterlab

4.1.1 Доступ к Jupyter
conda activate meep
jupyter lab –no-browser
jupyter notebook –no-browser
Скопируйте URL в ваш браузер в Windows.

4.2 Установите Spyder
conda activate meep
conda install -c conda-forge spyder
conda install -c conda-forge ipython_genutils
conda install -c conda-forge spyder-kernels

4.2.1 Запустите Spyder в Mobaxterm (рекомендуется):
Установите Mobaxterm с https://mobaxterm.mobatek.net/download-home-edition.html
Выполните следующие коды:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libxcursor-dev
sudo apt-get install alsa
sudo apt install libegl1-mesa libegl1
sudo apt-get install python3-pyqt5.qtwebkit
Spyder
посетите: https://www.youtube.com/watch?v=gByRjL1HWII&ab_channel=ValeriaItzelArteagaMu%C3%B1iz, если дисплей не работает для spyder

4.2.2 Запустите Spyder на X-сервере:
Установите VcXsrv на Windows с: https://sourceforge.net/projects/vcxsrv/
Выполните следующие коды:
sudo apt-get install libxcursor-dev
sudo apt-get install alsa
sudo apt install libegl1-mesa libegl1
откройте файл .bashrc как текст или попробуйте следующий код:
nano ~/.bashrc
скопируйте и вставьте следующие коды в конец файла .bashrc:
export DISPLAY=$(awk ‘/nameserver / {print $2; exit}’ /etc/resolv.conf 2 /dev/null):0
export LIBGL_ALWAYS_INDIRECT=1
export QT_QPA_PLATFORM=offscreen
сохраните текстовый файл: (нажмите Ctrl-X, затем нажмите y и клавишу ввода, если вы использовали код “nano ~/.bashrc”)
Запустите VcXsrv и установите номер дисплея на 0 и выберите несколько окон
Разрешите подключение из общественных и частных сетей к VcXsrv в настройках брандмауэра
spyder

выполните следующие коды (examples/straight-waveguide.ipynb), чтобы протестировать вашу установку meep:

import meep as mp
import numpy as np
from matplotlib import pyplot as plt
print(mp.version)
cell = mp.Vector3(16,8,0)
geometry = [mp.Block(mp.Vector3(mp.inf,1,mp.inf),
center=mp.Vector3(),
material=mp.Medium(epsilon=12))]
sources = [mp.Source(mp.ContinuousSource(frequency=0.15),
component=mp.Ez,
center=mp.Vector3(-7,0))]
pml_layers = [mp.PML(1.0)]
resolution = 10
sim = mp.Simulation(cell_size=cell,
boundary_layers=pml_layers,
geometry=geometry,
sources=sources,
resolution=resolution)
sim.run(until=200)
eps_data = sim.get_array(center=mp.Vector3(), size=cell, component=mp.Dielectric)
plt.figure()
plt.imshow(eps_data.transpose(), interpolation='spline36', cmap='binary')
plt.axis('off')
plt.show()
ez_data = sim.get_array(center=mp.Vector3(), size=cell, component=mp.Ez)
plt.figure()
plt.imshow(eps_data.transpose(), interpolation='spline36', cmap='binary')
plt.imshow(ez_data.transpose(), interpolation='spline36', cmap='RdBu', alpha=0.9)
plt.axis('off')
plt.show()

В случае ошибки при импорте meep (python -c 'import meep' или python3 -c 'import meep'):
conda activate meep
conda install -c conda-forge libgcc3
conda install -c conda-forge gsl

В Jupyter lab или Spyder вы должны быть в состоянии увидеть направляющую волну и распределение поля Ez. Потрясающе!!!!
Тестировалось на подсистеме Ubuntu 20.04 LTS на Windows 10.

посетите следующие веб-сайты для получения дополнительной информации о установке Meep:

  1. https://novelresearch.weebly.com/installing-meep-in-windows-8-via-cygwin.html
  2. http://jdj.mit.edu/wiki/index.php?title=Meep_Installation&printable=yes
  3. https://www.youtube.com/watch?v=pxIJTGiBdWs
  4. http://lordamit.blogspot.com/2011/10/tutorial-meep-in-ubuntu-complete.html?view=classic
  5. https://www.fzu.cz/~dominecf/meep/

Как ответил JaromandaX, мне пришлось обновиться до последней версии Ubuntu, чтобы получить доступ к Meep. Спасибо!

Ответ или решение

Чтобы установить MEEP на Windows 11 с использованием Windows Subsystem for Linux (WSL), выполните следующие пошаговые инструкции. Предполагается, что у вас уже установлен WSL и вы используете дистрибутив Ubuntu 24.04.1 LTS, как указано в вашем описании.

Шаг 1: Обновление пакетов

Перед началом установки MEEP рекомендуется убедиться, что все пакеты вашей системы актуальны. Откройте терминал WSL и выполните следующие команды:

sudo apt update
sudo apt upgrade

Шаг 2: Установка необходимых зависимостей

MEEP требует некоторые зависимости для корректной работы. Установите их с помощью следующей команды:

sudo apt install build-essential gfortran libboost-all-dev libhdf5-dev libblas-dev liblapack-dev libopenmpi-dev openmpi-bin python3-dev python3-pip

Шаг 3: Установка Python библиотек

Для работы с MEEP через Python вам также понадобятся конкретные библиотеки. Используйте pip для установки необходимых модулей:

pip3 install numpy matplotlib scipy

Шаг 4: Установка MEEP из репозитория

Поскольку в стандартных репозиториях Ubuntu MEEP может отсутствовать, вам необходимо добавить PPA (Personal Package Archive). Используйте следующую команду:

sudo add-apt-repository ppa:meep/ppa

После добавления репозитория обновите списки пакетов:

sudo apt update

Теперь установите MEEP:

sudo apt install meep

Шаг 5: Проверка установки

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

meep --version

Шаг 6: Использование MEEP в Python

Чтобы использовать MEEP в вашем Python-скрипте, выполните следующие команды, чтобы убедиться, что библиотека доступна:

python3 -c "import meep as mp; print(mp.__version__)"

Если не возникло ошибок, установка завершена успешно! Вы можете начинать использовать MEEP для запуска ваших симуляций.

Шаг 7: Решение потенциальных проблем

Если вы сталкиваетесь с ошибкой "Package ‘meep’ has no installation candidate", это может указывать на проблемы с доступностью пакета в вашей версии Ubuntu. Убедитесь, что вы используете актуальную версию и что PPA добавлен корректно. Также проверьте подключения к интернету и возможность установки пакетов.

Заключение

Теперь вы знаете, как установить MEEP на Windows 11 через WSL. Следуя этим шагам, вы сможете настроить необходимую среду для работы с MEEP и запускать численные симуляции. Для получения дополнительной информации и справочной документации рекомендуется обратить внимание на официальный сайт проекта и соответствующую документацию.

Оцените материал
Добавить комментарий

Капча загружается...