#python #flask #raspberry-pi #virtualenv #autostart
Вопрос:
Я работаю над созданием файла bash на своем raspberry pi, чтобы иметь возможность запускать проект веб-приложения, который я создал при запуске raspberry pi. Я смог разобраться в большинстве из них, за исключением проблем с виртуальной средой, позволяющих мне получить доступ к своим пакетам, установленным в виртуальной среде. Когда я бегу
workon tm python main.py
в терминале я могу заставить свой проект работать нормально. Но когда я запускаю свой файл bash
#!/bin/bash # startup.sh #Open Chromium on the Raspberry Pi on fullscreen on bootup. Then open the virtual environemnt, and then run our python script #su - pi -c "/usr/bin/chromium-browser --start-fullscreen 127.0.0.1:5000" cd / cd /home/pi/MySQLAppTrueTrue source /usr/local/bin/virtualenvwrapper.sh source ~/.bashrc #workon /home/pi/.virtualenvs/tm workon tm sudo python /home/pi/MySQLAppTrueTrue/main.py
Я получаю ошибку
pi@raspberrypi:~/MySQLAppTrueTrue $ ./startup.sh Traceback (most recent call last): File "/home/pi/MySQLAppTrueTrue/main.py", line 1, in lt;modulegt; from webapp import app #import the web app File "/home/pi/MySQLAppTrueTrue/webapp/__init__.py", line 2, in lt;modulegt; from flask_mysqldb import MySQL #import mySQL ImportError: No module named flask_mysqldb
Означает ли это, что моя workon tm
линия на самом деле не заставляет устройство работать в виртуальной среде. Если да, то как мне заставить это работать? Или мне просто нужно устанавливать свои пакеты глобально, а не в виртуальной среде?
Ответ №1:
Вместо всей этой магии работы с virtualenvwrapper вам, вероятно, следует просто использовать интерпретатор Python этого virtualenv:
#!/bin/bash cd /home/pi/MySQLAppTrueTrue sudo /home/pi/.virtualenvs/tm/bin/python /home/pi/MySQLAppTrueTrue/main.py
Комментарии:
1. И это сработало с первой попытки. Большое спасибо.
2. @MatthewVanGinneken Рад, что смог помочь. Пожалуйста, отметьте ответ как принятый тоже 🙂