python / serial сломан в OSX lion / launchd - PullRequest
0 голосов
/ 17 августа 2011

У меня есть запись launchd, которая работает с OSX 10.6, но не работает с 10.7. Он использует python и выдает ошибку при попытке импортировать serial. Я не совсем понимаю это, потому что я заново загрузил pyserial-2.5 и переустановил его с помощью sudo. (В отчаянии я переустановил его для каждого из множества вариантов python на моей машине.) В качестве теста я могу войти в python и без проблем выполнить import serial. Может быть, есть системный путь, который хорошо настроен для интерактивного пользователя, который не настроен для запуска ??

Кто-нибудь может подсказать, как мне диагностировать проблему?

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Путь, который вы добавляете:

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

- это каталог site-packages для стороннего, не системного Python, возможно установленного с помощью установщика python.org, а не из поставляемой Apple системы Python 2.7, которая будет:

/Library/Python/2.7/site-packages

Так что, скорее всего, вы используете Python.org Python для установки pyserial, но запускаете системный Python под launchd. Проверьте вашу оболочку PATH (echo $PATH), она, вероятно, имеет:

/Library/Frameworks/Python.framework/Versions/2.7/bin

в нем. И попробуйте which python. Если вы хотите использовать Python.org Python с вашим списком launchd, измените его, указав абсолютный путь к нужному Python, например:

/Library/Frameworks/Python.framework/Versions/2.7/bin/python

Если вы хотите установить pyserial с Python, поставляемым системой, вы можете использовать абсолютный путь к нему при установке:

/usr/bin/python2.7

0 голосов
/ 17 августа 2011

Некоторые эксперименты с python -S показали, что sys.path не был настроен должным образом, поэтому я решил проблему с помощью

import sys
sys.path.append('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages')
import serial

что я знаю неловко, так как это так специфично, но я думаю, мне придется с этим смириться, если или пока я не смогу найти способ сказать Python, где искать вещи, как он вызывается из launched.

PS всем, кто придет сюда позже: переход на OSX 10.7 (Lion) изменил множество вещей. Возможно, у меня где-то был файл инициализации, о котором я забыл. Если я найду это, я попробую это и отправлю дальнейший комментарий здесь.

...