2015-03-30 5 views
2

Я очень новичок в python, а также в MAC OSX. Для моего академического проекта мне нужно загрузить кучу твитов из twitter с помощью twitter streaming API. Мне нужно скачать at 50000 твитов. Поэтому я написал скрипт python и поместил его в start-up. «Системные предпочтения -> Пользователи и группы -> Элементы входа» и добавили мой сценарий. Но я вижу, что скрипт не выполняется при входе в систему! Пожалуйста, помогите мне решить эту проблему.MAC OSX - выполнить скрипт python при запуске

ответ

3

Адаптировать следующее соответственно, назвать это что-то вроде myscript_launcher.plist, и положить его в или один из трех мест: /System/Library/LaunchAgents, /System/Library/LaunchDaemons, /Users/<username>/Library/LaunchAgents.

<?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>my.python.script.name</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/path/to/python</string> 
     <string>/path/to/python/script.py</string> 
    </array> 
    <key>StandardErrorPath</key> 
    <string>/var/log/python_script.error</string> 
    <key>KeepAlive</key> 
    <true/> 
</dict> 
</plist> 

Кроме того, давайте предположим, что вы поместили файл Plist в ~/Library/LaunchAgents. Вы можете запустить и остановить его с помощью initctl. Для начала используйте initctl load ~/Library/LaunchAgents/myscript_launcher.plist. Чтобы остановить его, сделайте то же самое, но используйте аргумент unload

+1

благодарит за ответ. Это правильный способ решить проблему. – whitetiger

+4

Я не уверен, что это изменилось на OS X Yosemite или если у меня был Linux на мозге, когда я написал это, но для загрузки и выгрузки plist вы используете 'launchctl', а не' initctl'. Опять же, это может быть «initctl» pre Yosemite, но если это не удается, используйте «launchctl». – Tommy

2

Вам необходимо создать файл оболочки, который запустит ваш код на Python. Скажите сценарий оболочки для запуска при входе в систему.

пример

#!/bin/bash 
python username/Desktop/startupscripts/file.py 

сохранить файл с расширением .sh.

Добавить .sh файл в «Системные предпочтения -> Пользователи и группы -> Элементы входа», сценарий .sh вызывается в файле python.

Это то, что вы должны иметь в файле оболочки. Я предполагаю, что это путь к файлу, если он не модифицирует его.

#!/bin/bash 
python /Users/username/moviebuzz-api/flask/bin/streaming_movies.py 

ничего более.

+0

Когда я пробую этот метод, система не выполняет скрипт! Он просто открывает файл в редакторе сценариев оболочки по умолчанию ... это xcode в моем случае! – whitetiger

+0

Щелкните правой кнопкой мыши, получите информацию, установите ее с помощью терминала. – reticentroot

+0

Кроме того, если этот ответ соответствует вашему удовлетворению, тогда правильный этикет должен выбрать ответ как правильный ответ. – reticentroot

Смежные вопросы