Вопрос или проблема
Я могу запустить скрипт ниже на удаленном сервере с ubuntu 22.04. Тем не менее, тот же скрипт на моей виртуальной машине ubuntu 22.04, работающей как гость на Windows, не запускается. Запуск скрипта в терминале с помощью “python script.py” проходит без ошибок, при этом среда python активируется вручную. Вот что я пробовал до сих пор
#!/bin/bash
export PATH=/home/zmumba/anaconda3/bin:$PATH
eval "$(/home/zmumba/anaconda3/bin/conda shell.bash hook 2> /dev/null)"
/home/zmumba/anaconda3/bin/conda run -n py12 python /home/zmumba/DA/Dekad_Progs/Programs/09_RiskMap.py
Это работает нормально на удаленном сервере. На моей виртуальной машине я получаю ошибку ниже
ModuleNotFoundError: No module named 'geopandas'
“conda install geopandas дает
# All requested packages already installed.
Затем я добавил (из некоторых постов) перед командой
source /home/zmumba/anaconda3/etc/profile.d/conda.sh
conda activate py12
Та же ошибка geopandas. Буду признателен за любую помощь.
Вы это читали? https://geopandas.org/en/stable/getting_started/install.html
Мы настоятельно рекомендуем либо установить все из канала по умолчанию, либо все из канала conda-forge. Получение смеси пакетов из обоих каналов для зависимостей GeoPandas может привести к проблемам с импортом. См. раздел conda-forge о использовании нескольких каналов для получения дополнительной информации.
Если вы установили оба, удалите оба, а затем установите один.
Если Anaconda не работает, попробуйте с pip (после удаления версий Anaconda) обязательно –
pip install numpy pandas shapely pyproj pyogrio pyproj packaging
Если вы хотите опциональные зависимости, установите их сейчас опционально –
fiona
(опционально; медленная альтернатива pyogrio)psycopg
(опционально; для подключения PostGIS)psycopg2
(опционально; для подключения PostGIS – старая версия библиотеки psycopg)GeoAlchemy2
(опционально; для записи в PostGIS)geopy
(опционально; для геокодирования)pointpats
(опционально; для продвинутой выборки точек)
Для построения опционально:
matplotlib
(>= 3.5.0)fmapclassify
(>= 2.4.0)folium
(для интерактивной визуализации)
затем обязательно
pip install geopandas
Если это не работает, попробуйте установить из Github –
git clone https://github.com/geopandas/geopandas.git
cd geopandas
pip install .
Попробуйте удалить python
и conda
и установить их снова. Обратитесь к разделу Удаление conda на https://docs.conda.io/projects/conda/en/stable/user-guide/install/linux.html. Удаление python
зависит от того, как вы его установили. Я рекомендую установить python3
, если у вас его нет, так как Python 2 больше не поддерживается.
Если все это не сработает, рассмотрите возможность создания новой виртуальной машины и переноса ваших данных на нее.
Ответ или решение
Для активации виртуального окружения Python и выполнения команды из оболочки на Ubuntu VM можно воспользоваться следующими подходами. Поскольку вы уже упомянули проблемы с запуском скрипта, когда он используете Anaconda, и возникает ошибка "ModuleNotFoundError: No module named ‘geopandas’", я предоставлю подробное руководство с шагами по устранению неполадок и выполнению вашего скрипта.
Шаг 1: Убедитесь в корректной установке Anaconda и зависимостей
-
Проверьте установку Anaconda:
Убедитесь, что Anaconda установлена правильно, выполнив команду в терминале:conda --version
-
Проверьте наличие пакета geopandas:
Активируйте ваше окружение и проверьте установленные пакеты:conda activate py12 conda list geopandas
Если пакет установлен, вывод должен содержать информацию о версии.
-
Если не установлен, установите geopandas:
Используйте следующий команду, чтобы установить geopandas из канала conda-forge:conda install -c conda-forge geopandas
Шаг 2: Правильная настройка скрипта оболочки
Чтобы правильно запустить Python скрипт из bash скрипта, выполните следующие шаги:
-
Создайте создайте файл скрипта, например
run_script.sh
:#!/bin/bash # Задайте переменные окружения для Anaconda export PATH="/home/zmumba/anaconda3/bin:$PATH" source /home/zmumba/anaconda3/etc/profile.d/conda.sh # Инициализация сценариев conda # Активация вашего окружения conda activate py12 # Выполнение вашего Python скрипта python /home/zmumba/DA/Dekad_Progs/Programs/09_RiskMap.py
-
Сделайте скрипт исполняемым:
Убедитесь, что ваш скрипт имеет права на выполнение:chmod +x run_script.sh
Шаг 3: Выполнение скрипта
Теперь вы сможете выполнить ваш скрипт с помощью команды:
./run_script.sh
Шаг 4: Дополнительные проверки
Если вы все еще сталкиваетесь с ошибками после выполнения вышеуказанных шагов, вот несколько дополнительных шагов для устранения неполадок:
-
Проверьте, что Anaconda правильно настроена:
Иногда может помочь перезапуск терминала или системы после первого запуска Anaconda. -
Убедитесь в отсутствии конфликтующих версий пакетов: Использование pip и conda в одном окружении может привести к конфликтам. Убедитесь, что все необходимые пакеты установлены из одного источника, предпочтительно conda-forge.
-
Установите зависимости вручную через pip, если Anaconda не помогает:
Если вы предпочитаете pip, можете использовать команды, приведенные в вашем источнике:pip install geopandas
Заключение
С помощью вышеуказанных шагов вы сможете активировать виртуальное окружение Python и успешно выполнить ваш скрипт в Ubuntu VM. Пользуйтесь рекомендациями по управлению пакетами и окружениями, чтобы избежать проблем с несовместимыми версиями. Если проблема сохраняется, рассмотрите возможность создания нового виртуального окружения или даже новой виртуальной машины, чтобы исключить конфликты.