LINUX.ORG.RU

Проблемы с переменными окружения при вызове процессов из скетча Arduino Yun

 


0

2

Всем привет!

Даже не смог подобрать верный раздел для этого вопроса. Но это, думаю, не так уж и важно. Важна сама проблема. Есть у меня Arduino Yun, это где и arduino, и linux-машинка, в одной коробке. Так вот вызываю я питоновский скрипт из скетчка ардуинки:

  Process sensor_log;
  sensor_log.begin("python");
  sensor_log.addParameter("/mnt/sda1/test.py");

  sensor_log.run();
  
  while (sensor_log.available() > 0) {
    char c = sensor_log.read();
    Console.print(c);
  }

И всё работает отлично, пока в питоне скрипте всего лишь:

print(123)
Но как только мне нужно использовать sqlite3, и я пытаюсь его импортить, то всё перестаёт работать. Причем без видимых ошибок и предупреждений, просто sensor_log.read() ничего не возвращает. Я подозреваю, что проблема в переменных окружения. Для того, чтобы успешно заимпортить sqlite3, нужно установить LD_LIBRARY_PATH, иначе библиотчека не найдется. А вот от какого пользователя и с какими переменными окружения запускает скрипт arduino - я хз.

На борту стоит linino (openwrt), и я подумал, может быть можно, как-то перманентно захардкодить эту переменную для всех пользователей? Но при этом прописав в /etc/environment, всё равно ничего не происходит.

Есть какие-нибудь идеи?

★★★

В python обычно используется PYTHONPATH для указания к доп путям

Jopich1 ()
Ответ на: комментарий от Jopich1

А так скрипт то ты как вызываешь ? Можешь перед вызовом скрипта добавить имя env переменной

Jopich1 ()
Ответ на: комментарий от Jopich1

Тут нужно, чтоб он sqlite.so подсасывал, при import sqlite3. Сам site-package он находит, вероятно.

VirRaa ★★★ ()
Ответ на: комментарий от Jopich1

Заюзал из скетча вызов env, и подтвердились мои ожидания, переменные окружения не дополненные, как нужно. Что делать, по прежнему непонятно.

VirRaa ★★★ ()
Последнее исправление: VirRaa (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.