Хотите Запустить Виртуальную Среду Через Python3 на Raspberry Pi, а не Через Терминал

#python #python-3.x #terminal #raspberry-pi4 #virtual-environment

Вопрос:

По сути, я хочу в конечном итоге создать исполняемый файл, который может запускаться при включении моего Pi. В настоящее время мне нужно запустить файл «активировать» виртуальной среды с «исходным кодом/активировать» в командной строке (из bash), я не могу запустить его напрямую.

Я попытался использовать приведенный ниже короткий код, чтобы обойти это (запустить виртуальную среду с помощью скрипта python, а затем запустить свой код), но я получаю ошибки разрешений.

 `import subprocess
 virtual_env = "Folder1/Folder2-env/bin/activate"
 script_file = "Folder1/Program.py"
 subprocess.Popen([virtual_env, script_file])`
 

Вот ошибка, которую я получаю:

 `Traceback (most recent call last):
 File “/home/pi/test.py”, line 7 in <module>
 Subprocess.Popen([virtual_env, script_file])
 File “/usr/lib/python3.7/subprocess.py”, line 775, in __init__
 Restore_signals, start_new_session)
 File “/usr/lib/python3.7/subprocess.py”, line 1522, in _execute_child
 Raise child_exception_type(errno_num, err_msg, err_filename)
 PermissionError: [Errno 13] Permission denied: ‘Folder1/Folder2-env/bin/activate’`
 

Любая помощь будет признательна!

Ответ №1:

Вы можете использовать файл .bat для активации в virtual env и, например, запустить свой скрипт:

 call workon venv amp; cd path/to/Python/proj amp; python -m script.py
 

Комментарии:

1. Привет, спасибо за ответ. Есть ли способ написать это как код в скрипте python, вместо того, чтобы запускать его через командный терминал?

2. Не уверен, но в файле .bat вам не нужно входить в терминал. вы просто вызываете(запускаете) файл .bat