Запустите скрипт Python в виртуальной среде на запуске

Я хотел бы запустить сценарий Python с виртуальной среды на запуске. Я искал целый форум и другие источники, но не смог заставить его работать.

Сценарий должен работать в каталоге сценариев как рабочий каталог и также терминал, который запустился, сценарий должен быть сохранен видимым.

Я главным образом использовал "Приложения Запуска" и различные конфигурации .desktop файлов в ~/user/.config/autostart

Я попробовал рабочими файлами оболочки, которые работают самостоятельно ниже:

[Desktop Entry]
Type=Application
Terminal=true
Exec=/home/user/autostart.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=True
Name=autostart_shell
Comment=

И .sh-файл

#!/usr/bin/env bash
sleep 10
cd /home/user/environment
bin/python3 main.py
bash

или что-то вроде этого

#!/usr/bin/env bash
sleep 10
cd /home/user/environment
source bin/activate 
python3 main.py
bash

Однако среда никогда не активируется.

Я также попробовал другие .desktop-конфигурации как ниже без успеха

[Desktop Entry]
Type=Application
Path=/home/user/env/
Terminal=true
Exec=gnome-terminal --command 'bash -ec "sleep 10;cd /home/user/env;source bin/activate;python3 main.py;bash"'
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

Я провел большую часть дня на это без успеха, у кого-либо есть какие-либо идеи?

ОБНОВИТЕ хорошо, еще после некоторой работы проблема связана с активацией виртуальной среды.

Я использую "Приложения Запуска" для выполнения сценария оболочки. Я попробовал и терминал гнома и xterm с тем же результатом. Ниже команда в *.desktop заданиях

gnome-terminal --command '/home/user/folder/startup.sh'

и

xterm /home/user/folder/startup.sh

Сценарий оболочки смотрит следующим образом:

#!/bin/bash
# Give it some time to make sure everything is loaded
sleep 5

# Logging to make sure it is run
TIMESTAMP=`date "+%Y-%m-%d %H:%M:%S"`
echo "$TIMESTAMP - program was run " >> /home/user/folder/log.txt

# Switching working directory
cd /home/user/folder

# Alternative 1 
# Run python script with virtual envirnments python binary
/home/user/folder/bin/python3 /home/user/folder/main.py

# Alternative 2
# Activate environment and then run 
source /home/user/folder/bin/activate
python3 /home/user/folder/main.py

# Keep the terminal open
bash

На начальной загрузке и входе в систему запускается терминал, но ошибка Python отображена о недостающем модуле. Если сценарий оболочки выполняется автономный, он работает без проблемы, но запущенный из "Приложений запуска", это не.

Это ворчит меня настолько трудно, разве действительно не возможно запустить терминал в виртуальной среде Python?

0
задан 15 April 2020 в 10:23

1 ответ

необходимо изменить .sh-файл на:

    #!/usr/bin/env bash
    sleep 10
    cd /home/user/environment
    /usr/bin/python3 main.py
    bash

Вы пропускаете наклонную черту прежде bin/python3, и Python не установлен на / каталоге bin, он установлен в/usr/bin каталоге

    $ whereis python3
    python3: /usr/bin/python3.8 /usr/bin/python3.8-config /usr/bin/python3 /usr/lib/python3.8 /usr/lib/python3.6 /usr/lib/python3 /etc/python3.8 /etc/python3.6 /etc/python3 /usr/local/lib/python3.8 /usr/local/lib/python3.6 /usr/include/python3.8 /usr/share/python3 /usr/share/man/man1/python3.1.gz
0
ответ дан 25 April 2020 в 10:48

Другие вопросы по тегам:

Похожие вопросы: