3 Pertanyaan: Iron Python / Iron Ruby EXE

pertanyaan dibuat di Thu, Jun 18, 2009 12:00 AM

Saya selalu bermimpi menciptakan 'exe nyata' dari bahasa scripting. Dengan tersedianya implementasi Python dan Ruby berbasis DLR, apakah ini semakin mendekati kenyataan?

Saya ingin membuat 'aplikasi nyata':

  • Aplikasi Formulir Windows
  • Aplikasi Konsol
  • Layanan Windows

Dan minta unit distribusinya menjadi exe yang dikompilasi.

Apakah ini mungkin? Atau apakah MS baru saja membuat penerjemah file skrip berdasarkan .NET?

Jika Anda melakukan ini, bagaimana Anda menyusun aplikasi /proyek Anda? Apakah Anda menggunakan gabungan kode C # dan DLR?

    
7
3 Jawaban                              3                         

Proyek IronPython atau IronRuby dapat dikompilasi ke dll atau dapat dieksekusi dengan baik dan akan menjadi executable 'nyata' dalam setiap cara dengan ketentuan bahwa orang yang menjalankannya harus memiliki kerangka kerja .Net yang relevan dan dependensi yang diinstal (dependensi mungkin hadir di direktori yang sama secara default sebagai gantinya tetapi kerangka kerja harus diinstal). Integrasi dengan Visual Studio masih belum ada tetapi proyek-proyek seperti IronPythonStudio menggunakan VS Shell gratis untuk efek yang baik. Keberadaan DLR sebagai ketergantungan untuk c # dynamic dalam VS 2010 harus berarti bahwa integrasi dengan VS dari kelompok Iron * menjadi tujuan yang lebih mudah dan prioritas yang lebih tinggi.

Hasilnya sama sekali tidak diartikan (CIL dimasukkan ke dalam kode mesin pada saat runtime atau melalui ngen jika diinginkan) dan aspek-aspek tertentu dari DLR berarti beberapa tindakan ditunda dengan cara yang mirip dengan latebinding tetapi lebih kuat dan krusial dengan beberapa mekanisme caching canggih untuk memungkinkan ini relatif lebih cepat dibandingkan dengan penerjemah naif.

Banyak bahasa skrip yang ditafsirkan secara tradisional membuat strategi kompilasi berbasis VM mereka sendiri atau memanfaatkan yang sudah ada (seperti JVM, .Net CLR atau yang terbuka seperti LLVM ) karena ini menyebabkan peningkatan kinerja yang signifikan dalam banyak kasus umum.

Dalam kasus bahasa Iron *, manfaat MS CLR sebagai dasar adalah bahwa executable yang dihasilkan 'Just Work' pada sebagian besar instalasi dari keluarga OS yang paling umum. Kontras dengan Java di mana file jar tidak 'runnable' dengan mengklik langsung /atau 'mengeksekusi' melalui shell di banyak sistem operasi. Sisi negatifnya adalah ini mengurangi interoperabilitas dibandingkan dengan mengatakan solusi berbasis JVM atau LLVM di mana dukungan platform lebih luas tetapi, mau tidak mau, lebih beragam dalam integrasi OS.

    
4
2009-06-23 11: 34: 53Z
  1. Bisakah Anda memberikan dokumentasi atau prosedur untuk ini? Sepertinya Anda tidak bisa "File- > New Project" Python di Visual Studio, sehingga diperlukan beberapa pekerjaan tambahan.
    2009-06-23 01: 21: 25Z
  2. Integrasi VS masih belum ada (saya akan menambahkan catatan untuk efek itu) tetapi Anda dapat menggunakan codeplex.com/IronPythonStudio untuk mendapatkan lingkungan seperti VS (menggunakan VS Shell sebagai basisnya)
    2009-06-23 11: 28: 26Z
  3. Apa metode aktual untuk mengkompilasi kode DLR ke dalam executable Anda? Saya hanya dapat menemukan tautan dalam jawaban di bawah, dan sepertinya hanya merujuk pada kode beta.
    2009-06-23 20: 40: 34Z
  4. IronPython.Hosting.Compiler adalah apa yang ingin Anda gunakan. Proyek integrasi shell yang saya tautkan menggunakan itu untuk memberikan IronPythonTasks untuk dikompilasi ke dll /exe /winexe dan kemungkinan dapat digunakan dari vanilla VS dengan beberapa tweak. Kode python selalu harus berada dalam dll sendiri (Anda dapat menggabungkan dll setelah melalui ilmerge.exe jika Anda mau) dan kompilasi akan berantakan sampai integrasi VS ada.
    2009-06-24 11: 49: 22Z

Anda dapat membuat exe dari python biasa menggunakan Py2Exe . Tetapi seharusnya tidak ada yang mencegah Anda membuat mantera dengan IronPython menggunakan Visual Studio atau SharpDevelop

    
1
2009-06-18 17: 47: 09Z

meskipun tidak terkait langsung dengan pertanyaan iron *, mungkin menarik bagi seseorang yang menginginkan binari dari skrip python: pyinstaller

berfungsi di bawah Windows (32-bit dan 64-bit), Linux (32-bit dan 64-bit) dan Mac OS X (hanya 32-bit)

berfungsi di bawah versi Python mana saja dari 1,5 hingga 2,7

    
- 1
2010-11-25 21: 01: 40Z
  1. tidak ada hubungannya dengan pertanyaannya
    2011-09-07 19: 17: 42Z
  2. jika Anda membaca kalimat pertama dari postingan pertanyaan, Anda akan melihat apa yang ada hubungannya dengan pertanyaan saya ...
    2011-11-19 11: 31: 28Z
sumber ditempatkan sini