Saya menjalankan OSX, dan saya membuat aplikasi yang memiliki program Python di Resources
folder, skrip Bash memanggil skrip Python untuk dijalankan ketika aplikasi diluncurkan. Script ada di MacOS
folder di dalam aplikasi, dinamai sama dengan aplikasi. Saya punya skrip Bash ini:
#!/bin/bash
clear
python /Applications/Converter.app/Contents/Resources/Converter.py
Saya pikir skrip Bash akan dieksekusi ketika aplikasi diluncurkan, sehingga menyebabkan skrip python dijalankan melalui jendela terminal. Namun ketika saya mengklik dua kali aplikasi, tidak ada yang terjadi!
Jadi pada dasarnya, saya ingin skrip bash untuk membuka program Python di jendela terminal sehingga pengguna dapat berinteraksi dengannya.
Apa yang kulewatkan di sini?
macos
bash
python
terminal.app
Steampunkery
sumber
sumber
Jawaban:
Inilah solusi yang lebih baik untuk masalah Anda jika Anda benar-benar membutuhkannya
.app
bundel:Di Anda
Converter.app/Contents/MacOS/Converter
script, luncurkan skrip Python Anda dengan perintah "open":(Saya melakukan trik relatif pathname di atas sehingga Anda tidak mengkodekan jalur absolut yang akan rusak jika Anda memindahkan
.app
sekitar.)Pastikan Anda
Resources/Converter.py
skrip memiliki Python shebang di bagian atas:Pastikan keduanya
MacOS/Converter
danResources/Converter.py
ditandai dapat dieksekusi (digunakanchmod a+x filename
pada mereka).Saya menguji pengaturan ini dan
open
perintah berhasil menemukan bahwa a.py
File harus dibuka di Terminal tanpa saya melakukan apa pun. Saya tidak berpikir saya sebelumnya terkait.py
file dengan Terminal.app sebelumnya pada sistem ini, jadi saya pikir petunjuk ini tidak memerlukan langkah lebih lanjut bahkan pada sistem yang bersih.sumber
Cara termudah untuk membuat skrip yang dapat diklik ganda yang berjalan di jendela Terminal baru adalah dengan mengakhiri nama file dengan ".command". Kemudian Anda dapat mengklik dua kali pada file skrip itu sendiri, tidak perlu untuk bundel / paket .app.
Jika Anda ingin mengeksekusi
bash
perintah sebelum Python, Anda bisa meletakkan keduanya di file yang sama tetapi membungkus kode Python dalambash
exec
pernyataan. Script TCL sering melakukannya dengan cara ini. Jika Anda hanya ingin kode Python dan tidakbash
kode, ubah shebang di atas ke#!/usr/bin/python
(atau di mana pun Python tinggal di sistem Anda).Saya pribadi tidak suka apa pun yang menampilkan dirinya sebagai .app tetapi sebenarnya berjalan di jendela Terminal alih-alih menjadi aplikasi aslinya. Satu-satunya waktu saya melihat ini dilakukan adalah titik akhir Ixia Chariot untuk OS X. Saya belum melihatnya dalam beberapa tahun, tetapi mungkin masih bekerja seperti itu. Ini unduhan gratis. Anda mungkin ingin mengambilnya dan melihat bagaimana mereka melakukannya dan mungkin memposting Jawaban untuk pertanyaan Anda sendiri. Saya pikir solusi mereka melibatkan pengemasan file pengaturan Terminal di aplikasi mereka. Saya pikir itu menyebabkan instance Terminal.app terpisah untuk diluncurkan dengan pengaturan kustom mereka yang aneh, yang menjengkelkan dengan cara yang segar dan menarik. :)
sumber
Coba ubah skrip yang Anda miliki
.command
atau.tool
ekstensi, tetapi mungkin itu tidak bisa berfungsi di OS X baru-baru ini.Namun jika Anda membutuhkan skrip untuk menjadi aplikasi, Anda harus membuatnya.
Struktur dasar aplikasi Mac adalah:
Kemudian salin skrip Anda ke
MacOS/
(dengan nama yang sama dengan aplikasi Anda), yang harus berisi kode yang dapat dieksekusi aplikasi mandiri. Semua sumber daya lainnya masukResources/
.Silakan lihat appify naskah oleh Thomas (atau Versi Mathias itu) yang pada dasarnya seperti:
Pemakaian:
Sumber: Cara membuat aplikasi Mac sederhana dari skrip shell
Atau Anda dapat menggunakan:
Atau buat secara manual dengan:
MyApp.app/Contents/MacOS/MyApp.app
Dengan kata lain ( Gino ):
Lihat juga:
sumber