Я запускаю следующие импортные питоны в сценарии, который отлично работает из командной строки в терминале и из ноутбука ipython.ImportError: Нет модуля с именем bs4 при вызове из launchd
#!/usr/bin/python
import os
import re
import urllib
import urllib2 as ul
import sys
from bs4 import BeautifulSoup as bs
Когда он вызывается из .plist файла через Mac я получаю запуск программ следующее сообщение об ошибке:
11/24/15 1:17:05 PM com.jerry.sat_images[668] Traceback (most recent call last):
11/24/15 1:17:05 PM com.jerry.sat_images[668] File "/Users/jerrykallam/python_practice/sat_image.py", line 6, in <module>
11/24/15 1:17:05 PM com.jerry.sat_images[668] import bs4
11/24/15 1:17:05 PM com.jerry.sat_images[668] ImportError: No module named bs4
11/24/15 1:17:05 PM com.apple.launchd.peruser.501[165] (com.jerry.sat_images[668]) Exited with exit code: 1
из командной строки и IPython импорта BS4 и скрипт работает отлично. Это код .plist, который работает корректно. Не знаю, почему скрипт не может импортировать bs4 только при вызове launchd.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.jerry.satimages</string>
<key>ProgramArguments</key>
<array>
<string>python</string>
<string>/Users/jerrykallam/python_practice/sat_image.py</string>
</array>
<key>StartInterval</key>
<integer>360</integer>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Вы можете запустить 'Судо пип замораживания | grep beautifulsoup4' и посмотреть, установлен ли пакет для суперпользователя? – wpercy
Я получаю следующее: Каталог «Пользователи/jerrykallam/Library/Caches/pip/http» или его родительский каталог не принадлежит текущему пользователю, и кеш отключен. Проверьте разрешения и владельца этого каталога. Если вы используете pud с sudo, вам может понадобиться флаг sudo -H. beautifulsoup4 == 4.3.2 – cubflier
И каковы разрешения и владелец этого каталога? – wpercy