我对Python和MAC OSX都很新。对于我的学术项目,我需要使用twitter流API从twitter下载一堆推文。我需要下载至少5000000条推文。所以我编写了一个python脚本并将其置于启动状态。 “系统偏好 - >用户和群组 - >登录项目”并在那里添加了我的脚本。但我发现登录系统时脚本没有执行!请帮我解决这个问题。
答案 0 :(得分:6)
相应地调整以下内容,将其命名为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 :(得分:2)
您需要创建一个启动python代码的shell文件。告诉shell脚本在登录时开始。
例如
#!/bin/bash
python username/Desktop/startupscripts/file.py
使用.sh扩展名保存文件。
将.sh文件添加到 “系统偏好 - &gt;用户和群组 - &gt;登录项目”,.sh脚本将调用python文件。
这是你应该在shell文件中拥有的内容。我假设这是文件的路径,如果不修改它。
#!/bin/bash
python /Users/username/moviebuzz-api/flask/bin/streaming_movies.py
别无其他。
答案 2 :(得分:0)
这是我在Mojave上使用的完整解决方案:
列表:~/Library/LaunchAgents/play.with.mpv.plist
<?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>Disabled</key>
<false/>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/e/Library/Python/3.7/bin:/usr/local/bin</string>
</dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>play.with.mpv</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/python3</string>
<string>/Users/e/Library/Python/3.7/bin/play-with-mpv</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/play.with.mpv.stderr</string>
<key>StandardOutPath</key>
<string>/tmp/play.with.mpv.stdout</string>
</dict>
</plist>
介意python3的路径-用which python3
和play-with-mpv
python脚本找到它!
加载plist:
launchctl load ~/Library/LaunchAgents/play.with.mpv.plist
如果您的视频丢帧了,请在~/.config/mpv/mpv.conf
中创建mpv配置,并将其放置在此处:
video-sync=display-resample
如果这样做没有帮助,请尝试
opengl-early-flush=no