Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 1683|Jawab: 4

[Sumber] .NET/C# memanggil lingkungan Python untuk mengeksekusi skrip .py

[Salin tautan]
Dipaparkan pada 2025-2-11 16:01:21 | | | |
Persyaratan: Pemrograman Python sangat populer saat ini, banyak digunakan dalam analisis data dan penelitian ilmiah, model besar, pembelajaran mendalam, dll., Beberapa algoritme model ditulis dalam python, perlu menggunakan .NET untuk mengeksekusi skrip python, meneruskan parameter dan mendapatkan hasil. Solusi online adalah: eksekusi proses, IronPython, pythonnet, dan terakhir pythonnet.

pythonnet-Python.NET

Python.NET adalah paket perangkat lunak yang memungkinkan pemrogram Python untuk mengintegrasikan .NET Universal Language Runtime (CLR) hampir dengan mulus dan menyediakan alat skrip aplikasi yang kuat kepada pengembang .NET. Ini memungkinkan kode Python untuk berinteraksi dengan CLR dan juga dapat digunakan untuk menyematkan Python ke dalam aplikasi .NET.

Alamat:Login hyperlink terlihat.

Siapkan lingkungan Python

Artikel ini menggunakan python-3.13.2-embed-amd64 sebagai lingkungan yang berjalan, referensi:

Paket sematan Python menginstal paket menggunakan pip
https://www.itsvse.com/thread-10941-1-1.html

Python-3.13.2 menyematkan paket unduhan 64-bit:Login hyperlink terlihat.

Membuat konsol .NET 8 baru

Buat referensi konsol .NET 8 baru dengan referensi berikut:

Karena pythonnet akan menggunakanBinerFormatter, pengecualian berikut akan dilemparkan selama eksekusi:

Pengecualian yang tidak ditangani. System.NotSupportedException: Serialisasi dan deserialisasi BinaryFormatter dinonaktifkan dalam aplikasi ini. LihatLogin hyperlink terlihat.untuk informasi lebih lanjut.

Untuk mengatasi masalah, edit node .csproj <PropertyGroup> dan tambahkan konfigurasi berikut:

Konfigurasi lengkapnya adalah sebagai berikut:

Py.GIL() adalah fungsi penting dalam perpustakaan Python.NET untuk mendapatkan dan melepaskan Global Interpreter Locks (GIL). GIL adalah mekanisme dalam penerjemah CPython yang memastikan bahwa hanya satu utas yang mengeksekusi bytecode Python pada satu waktu. Ini penting dalam lingkungan multi-threaded, terutama jika kode Python dan .NET dicampur bersama.

Tipe float Python sebenarnya adalah float presisi ganda (64 bit), sesuai dengan tipe ganda C#.

Eksekusi kode python secara langsung

Untuk kode python sederhana, yang dapat dieksekusi secara langsung, kodenya adalah sebagai berikut:



Memanggil fungsi python

Kodenya adalah sebagai berikut:



Sebarkan ke lingkungan Linux untuk pengujian

Tersedia untuk operasi normal, ujiannya adalah sebagai berikut:



Referensi:
Login hyperlink terlihat.
Login hyperlink terlihat.
Login hyperlink terlihat.




Mantan:Linux menggunakan pyenv untuk menginstal lingkungan Python
Depan:Angular 18 Series (Tiga Puluh Satu) Plugin Bantuan Pengembangan Kode VS
 Tuan tanah| Dipaparkan pada 2025-2-11 16:08:17 |
Panggil fungsi python dengan array daftar (<class 'list'>) sebagai argumen


Kodenya adalah sebagai berikut:


 Tuan tanah| Dipaparkan pada 2025-2-11 16:25:40 |
C# memanggil fungsi python untuk mendapatkan nilai pengembalian tuple <class 'tuple'>

Kodenya adalah sebagai berikut:



 Tuan tanah| Dipaparkan pada 2025-2-24 09:27:40 |
Bahasa Inggris- Alat untuk menyematkan kode Python ke dalam proyek .NET

Sumber:Login hyperlink terlihat.
Dokumentasi:Login hyperlink terlihat.
 Tuan tanah| Dipaparkan pada 2025-9-1 16:01:12 |
Mengkompilasi ke dalam eksekusi bytecode

Referensi:Login hyperlink terlihat.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com