#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