Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 1683|Yanıt: 4

[Kaynak] .NET/C# .py betikleri çalıştırmak için Python ortamını çağırır

[Bağlantıyı kopyala]
2025-2-11 tarihinde 16:01:21 tarihinde yayınlandı | | | |
Gereksinimler: Python programlama günümüzde çok popülerdir, veri analizi ve bilimsel araştırmalarda, büyük modellerde, derin öğrenmede vb. yaygın olarak kullanılır; bazı model algoritmaları python ile yazılır, python betiklerini çalıştırmak, parametreleri geçirmek ve sonuç almak için .NET kullanmak gerekir. Çevrimiçi çözümler şunlardır: süreç yürütme, IronPython, pythonnet ve son olarak pythonnet.

pythonnet-Python.NET

Python.NET, Python programcılarının .NET Evrensel Dil Çalışma Zamanını (CLR) neredeyse sorunsuz entegre etmesini sağlayan ve .NET geliştiricilerine güçlü uygulama betik araçları sunan bir yazılım paketidir. Python kodunun CLR ile etkileşime girmesine izin verir ve ayrıca Python'u .NET uygulamalarına gömmek için de kullanılabilir.

Adres:Bağlantı girişi görünür.

Python ortamını hazırlayın

Bu makale python-3.13.2-embed-amd64 çalışma ortamını kullanır, referans:

Python gömülü paketler, pip kullanarak paketleri kurar
https://www.itsvse.com/thread-10941-1-1.html

Python-3.13.2 gömülü paket 64-bit indirme:Bağlantı girişi görünür.

Yeni bir .NET 8 konsolu oluşturun

Aşağıdaki referansla yeni bir .NET 8 konsol referansı oluşturun:

Çünkü pythonnetBinaryFormatterSınıf olarak, uygulama sırasında aşağıdaki istisna uygulanacaktır:

Çözülemeyen istisna. System.NotSupportedException: BinaryFormatter serileştirme ve serilikten çıkarma bu uygulama içinde devre dışı bırakılmıştır. GörmekBağlantı girişi görünür.Daha fazla bilgi için.

Sorunu çözmek için .csproj düğümünü <PropertyGroup> düzenleyin ve aşağıdaki yapılandırmayı ekleyin:

Tam yapılandırma şu şekildedir:

Py.GIL(), Python.NET kütüphanesinde Küresel Yorumlayıcı Kilitleri (GIL) elde etmek ve serbest bırakmak için önemli bir işlevdir. GIL, CPython yorumlayıcısında yalnızca bir iş parçacığının aynı anda Python bayt kodu çalıştırmasını sağlayan bir mekanizmadır. Bu, çok iş parçacıklı bir ortamda önemlidir, özellikle Python ve .NET kodu karıştırıldığında.

Python'un float tipi aslında çift hassasiyetli bir float (64 bit) ve C#'ın çift tipine karşılık gelir.

Python kodunu doğrudan çalıştır

Doğrudan çalıştırılabilen basit python kodu için kod şöyledir:



Python fonksiyonu çağır

Kod şöyledir:



Test için Linux ortamına dağıtma

Normal çalışma için mevcut olan testler şunlardır:



Referans:
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.




Önceki:Linux, pyenv kullanarak Python ortamını kurur
Önümüzdeki:Angular 18 Serisi (Otuz Bir) VS Kod Geliştirme Yardımı Eklentisi
 Ev sahibi| 2025-2-11 tarihinde yayınlandı 16:08:17 |
Bir liste dizisi (<sınıf 'list'>) olan bir python fonksiyonunu argüman olarak çağırın


Kod şöyledir:


 Ev sahibi| 2025-2-11 tarihinde 16:25:40 tarihinde yayınlandı |
C#, tuple <class 'tuple'> return değerini almak için bir python fonksiyonu çağırır

Kod şöyledir:



 Ev sahibi| 2025-2-24 09:27:40 tarihinde yayınlandı |
CSnakes- .NET projelerine Python kodunu gömmek için bir araç

Kaynak:Bağlantı girişi görünür.
Belge:Bağlantı girişi görünür.
 Ev sahibi| 2025-9-1 tarihinde 16:01:12 tarihinde yayınlandı |
Bayt kodu çalıştırmaya derleme

Referans:Bağlantı girişi görünür.
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com