从命令行运行Python exe
我对Python非常陌生,所以这是在浪费我的时间。但这是一个简单的问题。我有一个python程序,如下所示从命令行运行Python exe,python,Python,我对Python非常陌生,所以这是在浪费我的时间。但这是一个简单的问题。我有一个python程序,如下所示 import time import os import subprocess def camera_play(cmd): if cmd == 1: cmd = 'raspistill --nopreview -w 640 -h 480 -q 5 -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &'
import time
import os
import subprocess
def camera_play(cmd):
if cmd == 1:
cmd = 'raspistill --nopreview -w 640 -h 480 -q 5 -o /tmp/stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 &'
pid = subprocess.call(cmd, shell = True)
cmd1 = 'LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer -i "input_file.so -f /tmp/stream -n pic.jpg" -o "output_http.so -w /usr/local/www"'
pid1 = subprocess.call(cmd1, shell = True)
elif cmd == 0:
pid.kill()
pid1.kill()
我用Pyinstaller做了一个exe程序。如何使用输入参数从命令行运行exe。
我跑得很快
camera_play 1
camera_play -i 1
它不起作用。谢谢因为您在Linux下运行,所以不必创建exe文件。 您的代码不会做任何事情,因为只有一个函数,但它永远不会被调用 必须在定义后使用此函数
#!/usr/bin/python
import...
def camera_play(cmd):
...
if len(sys.argv)>1:
cmd = sys.argv[1]
else:
cmd = WHAT YOU WANT???
camera_play(cmd)
要从命令行调用脚本,有两种可能:
python myscript
或
请注意,cmd似乎接受1或0,这很奇怪!如果为0,pid变量将不存在!
你必须认真思考你想做什么。
您也可以考虑使用subprocess.Popen查看此链接,您有两个问题:
您的程序中没有main
您没有处理命令行参数
您需要在文件末尾使用类似的内容:
if __name__ == "__main__":
camera_play(sys.argv[1])
这个和这个结合在一起/具有正确unix可执行权限的文件顶部的bin/python应允许您使用参数从命令行运行它。*.exe和LD_LIBRARY_PATH=/usr/local/lib/。。。?那怎么行?你在哪个平台上,Linux还是Windows?我在Linux上运行。它起作用了。我已经测试过了。你不能在Linux上运行*.exe文件,这是MS Windows特有的可执行格式。请安装wine,然后尝试wine camera_play 1,无论如何,你不需要Pyinstaller。chmodu+x和/文件开头的bin/python足够了。因为我是从我的远程设备运行程序,所以我需要生成exe并将其放入usr/bin。稍后我将学习python。现在我需要先完成流媒体。谢谢
if __name__ == "__main__":
camera_play(sys.argv[1])