Я пытаюсь создать сценарий оболочки на Linux (Ubuntu), как представлено в Автоматизировать скучные вещи с помощью Python
Я создал все файлы и * Скрипт 1034 * и когда я пытаюсь запустить его из Da sh в Ubuntu, он запускает скрипт Python с Python версией, которой нет в моей глобальной версии pyenv. Из-за этого я не могу использовать дополнительные модули, установленные через pip.
My Python версии (как указано в версиях pyenv)
system
* 3.8.1 (set by /home/tomek/.python-version)
3.8.1/envs/blog_env
3.8.1/envs/ll_env
3.8.1/envs/mcam_env
3.8.1/envs/money_value
3.8.1/envs/pizzaenv
3.8.1/envs/project_2
blog_env
ll_env
mcam_env
money_value
pizzaenv
project_2
версия 3.8.1 установлена как глобальная с пиенв. Некоторые подробности:
which python && which pip && python -V
/home/tomek/.pyenv/shims/python
/home/tomek/.pyenv/shims/pip
Python 3.8.1
Мой. sh (находится в моем домашнем каталоге) файл выглядит следующим образом:
#!/usr/bin/env bash
python3 /home/tomek/automate/MCAM/mClip.py 'agree'
bash
Мой файл .desktop (находится в .local / share / Applications необходимо запустить скрипт через Da sh в Ubuntu) выглядит так
[Desktop Entry]
Name=mClip
Exec=gnome-terminal -- /home/tomek/mClip.sh
Type=Application
Categories=GTK;GNOME;Utility;
, а моя первая строка в скрипте Python выглядит следующим образом:
#!/usr/bin/env python
Итак, когда я запустить мой скрипт из оболочки, он работает нормально, но когда я запускаю его через Da sh, он получает ошибку из-за отсутствия модулей, поэтому он пытается запустить его в другой среде Python. Я пытался отладить этот скрипт так же, как пытался запустить его, поэтому я изменил. sh файл таким образом
#!/usr/bin/env bash
which python && which pip && python -V && python3 -V
bash
, и я получаю этот результат
/usr/bin/python
/usr/bin/pip
Python 2.7.17
Python 3.6.9
Когда я тогда запустить этот код в том же окне оболочки (!), которое дает мне
/home/tomek/.pyenv/shims/python
/home/tomek/.pyenv/shims/pip
Python 3.8.1
Python 3.8.1
Я пытался также запустить pyenv в этом. sh сценарии, чтобы увидеть, каков результат, но он выдает ошибку, что команда pyenv не найден. Я пытался везде искать ответы, но ни один из них не помог мне.