将Python脚本打包为OS X应用,但
我现在有一个脚本,用来从几个代码库更新文件。这个脚本在我直接运行的时候没问题:
python myscript.py
但是,当我尝试把它打包成一个应用程序时,它就不正常工作了,因为我的脚本需要用户输入的部分。可惜的是,没有界面可以让它使用。我试过用py2applet和Platypus(用文本输出),但一直找不到让输入正常工作的办法。
someVar = raw_input("Enter some file name here: ")
所以,我的问题是:从一个打包好的Python应用程序中获取用户输入的最佳方法是什么?
3 个回答
-1
获取用户输入的最佳方法是什么?
别去折腾那些“打包”的应用程序。直接用命令行就行。
告诉用户打开一个终端窗口,然后从命令行运行你的应用。这样能省去大家很多麻烦。
用户并不“需要”打包的应用程序。他们会输入命令。试试看。
0
你可以通过图形界面(GUI)使用AppleScript来请求输入。只需要调用/usr/bin/osascript,显示一个带有文本框的窗口,然后返回用户输入的内容。
可以在这里查看一个例子(虽然是用Perl写的)
2
@sudowork: 目前我会按照你的建议来做,但为了学习,有没有什么方法可以实现最初的请求呢?
你可以在运行 Python 脚本的时候传递参数,这样就不需要在 Python 脚本里去获取这些参数了。你可以在你的 Cocoa 应用程序里获取输入,然后像运行其他命令行程序一样,使用 NSTask 来运行 Python 脚本,并把参数传进去。下面是如何在 Python 脚本中获取传入的参数。第一个参数可以用这个方法获取...
someVar = sys.argv[1]
要把 Python 脚本打包,只需将它添加到你的项目中。确保脚本有 shebang(就是那行以 #! 开头的代码)并且是可执行的,像上面说的那样。你可能需要手动强制将它添加到你的应用程序包里,可以通过添加一个新的“复制文件”构建阶段,并把脚本添加到那个阶段来实现。