当前位置: 首页 > news >正文

有没有专做推广小说的网站2022最新时事新闻及点评

有没有专做推广小说的网站,2022最新时事新闻及点评,西宁市公司网站建设,Wordpress有趣的小工具为什么需要C#调用python? 有以下几个原因需要C#调用Python: Python拥有丰富的生态系统:Python有很多强大的第三方库和工具,可以用于数据科学、机器学习、自然语言处理等领域。通过C#调用Python,可以利用Python的生态系…

为什么需要C#调用python?

有以下几个原因需要C#调用Python:

  1. Python拥有丰富的生态系统:Python有很多强大的第三方库和工具,可以用于数据科学、机器学习、自然语言处理等领域。通过C#调用Python,可以利用Python的生态系统来完成一些特定的任务。

  2. C#和Python的优势互补:C#是一种高性能、静态类型的编程语言,适合用于开发大型应用程序和高性能的系统。而Python则是一种动态类型的脚本语言,适合用于快速开发原型和处理复杂的数据分析任务。通过C#调用Python,可以充分发挥两者的优势。

  3. C#和Python在不同领域的应用:C#主要应用于Windows平台的开发,而Python则可以用于各种平台,包括Windows、Linux和Mac OS。通过C#调用Python,可以在C#应用程序中使用Python的功能和特性,实现更广泛的应用场景。

如何实现C#调用python脚本程序?

方式一:通过C#IronPython开源库

IronPython是一个基于.NET平台的Python解释器。它是使用C#编写的,可以被集成到.NET应用程序中,并且可以直接调用和使用.NET库和组件。IronPython提供了一个Python语言的实现,同时具备了与.NET平台无缝集成的能力。

IronPython最初由微软开发并发布,旨在提供一个Python解释器,使Python开发人员能够利用.NET框架的优势。IronPython是完全兼容Python 2.7语法和语义的,并且还支持一些Python 3的一些特性。IronPython可以通过.NET编译器将Python代码转换为托管代码,并与.NET框架进行交互。

IronPython具有以下特点和优势:

  • 与.NET框架的深度集成:IronPython可以直接与.NET库和组件进行交互,可以轻松使用和调用.NET的功能和类库。
  • 动态语言的灵活性:作为一种动态类型的脚本语言,IronPython具有动态性和灵活性,可以进行快速的原型开发和动态脚本编写。
  • 跨平台支持:IronPython可以在Windows、Linux和Mac OS等多个平台上运行,并且可以与不同平台的.NET应用程序集成。
  • 社区支持和活跃度:IronPython拥有活跃的开源社区,有大量的开发者和用户为其贡献代码和提供支持。

总之,IronPython是一个具有.NET集成和跨平台支持的Python解释器,可以在.NET平台开发中使用Python语言和功能。

IronPython.net /

缺点:

1)只支持到python 3.4的相关特性, 和目前主流的python 3.9, 3.10,3.11等版本相差甚远,会导致很多python流行的开源库(比如scikit-learn),无法正常使用。

IronPython使用案例

NuGet安装IronPython

test.py

def sayHi():print("hello you")def add(x,y):try:print(f"add {x}, {y}")return x + yexcept Exception as err:return str(err)def sum(arr):try:print(f"sum {arr}")sum = 0for i in arr:sum += ireturn sumexcept Exception as err:return str(err)

PythonScriptWindow.axml

<Window x:Class="CallPythonDemos.PythonScriptWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:CallPythonDemos"mc:Ignorable="d"Title="Python Script调用" Height="450" Width="800"><Grid><Grid.RowDefinitions><RowDefinition Height="auto"/><RowDefinition Height="auto"/><RowDefinition/></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><Button x:Name="btnCallPythonScript" Content="调用python脚本" Grid.Row="0" Margin="5" Click="btnCallPythonScript_Click"/><Button x:Name="btnClearOutput" Content="清理输出" Grid.Row="0" Grid.Column="1" Margin="5" Click="btnClearOutput_Click"/><TextBlock Text="输入参数:" Grid.Row="1" Margin="5"/><TextBlock Text="输出结果:" Grid.Row="1" Grid.Column="1" Margin="5"/><TextBox x:Name="txtInputParam" Grid.Row="2" Margin="5"/><RichTextBox x:Name="txtOutputResult" Grid.Row="2" Grid.Column="1" Margin="5" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" IsReadOnly="True"><RichTextBox.Document><FlowDocument/></RichTextBox.Document></RichTextBox></Grid>
</Window>

PythonScriptWindow.axml.cs

using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
using System.Diagnostics;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Media;namespace CallPythonDemos
{/// <summary>/// PythonScriptWindow.xaml 的交互逻辑/// </summary>public partial class PythonScriptWindow : Window{public PythonScriptWindow(){InitializeComponent();}private void btnCallPythonScript_Click(object sender, RoutedEventArgs e){_RunTestByIronPython();}private void btnClearOutput_Click(object sender, RoutedEventArgs e){txtOutputResult.Document.Blocks.Clear();}private void _RunTestByIronPython(){ScriptEngine pyEngine = Python.CreateEngine();dynamic testpy = pyEngine.ExecuteFile("test.py");testpy.sayHi();var add = testpy.add(3, 5);_WriteLog($"add 方法的和是:{add}");int[] arr = new int[3] { 2, 4, 6 };var sum = testpy.sum(arr);_WriteLog($"数组的和是:{sum}");}private void _WriteLog(string? log){Paragraph para = new Paragraph() { Margin = new Thickness(0) };para.Inlines.Add(new Run(log) { Foreground = Brushes.Black });txtOutputResult.Document.Blocks.Add(para);}}
}

运行效果

方式二: 通过Process类来运行python解释器

优缺点

优点:可以使用python当前的主流版本,并且可以使用大部分的流行的开源库。

缺点:只能通过命令行参数和控制台输出与python进行通信。

安装scikit-learn

pip install scikit-learn

gen_model.py

from sklearn import linear_model
if __name__ == '__main__':reg = linear_model.LinearRegression()reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])print('coef_:', reg.coef_)print('intercept_:', reg.intercept_)print('done')

PythonScriptWindow.axml.cs

using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
using System.Diagnostics;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Media;namespace CallPythonDemos
{/// <summary>/// PythonScriptWindow.xaml 的交互逻辑/// </summary>public partial class PythonScriptWindow : Window{public PythonScriptWindow(){InitializeComponent();}private void btnCallPythonScript_Click(object sender, RoutedEventArgs e){//_RunTestByIronPython();_RunPythonScript();}private void btnClearOutput_Click(object sender, RoutedEventArgs e){txtOutputResult.Document.Blocks.Clear();}private void _RunTestByIronPython(){ScriptEngine pyEngine = Python.CreateEngine();dynamic testpy = pyEngine.ExecuteFile("test.py");testpy.sayHi();var add = testpy.add(3, 5);_WriteLog($"add 方法的和是:{add}");int[] arr = new int[3] { 2, 4, 6 };var sum = testpy.sum(arr);_WriteLog($"数组的和是:{sum}");}/// <summary>///  调用python脚本/// </summary>private void _RunPythonScript(){Process p = new Process();p.StartInfo.FileName = "D:/my_project/Anaconda3/envs/jupyterlab_py310/python.exe";p.StartInfo.Arguments = "D:/my_project/first_board_debug/gen_model.py";p.StartInfo.UseShellExecute = false;p.StartInfo.RedirectStandardOutput = true;p.StartInfo.RedirectStandardInput = true;p.StartInfo.RedirectStandardError = true;p.StartInfo.CreateNoWindow = true;_WriteLog($"执行python脚本开始------------");p.Start();/*string output = p.StandardOutput.ReadToEnd(); //读取控制台的输出信息p.WaitForExit();  // 等待外部程序进行完毕_WriteLog(output);_WriteLog($"执行python脚本结束------------ exit code: {p.ExitCode}");*/// 如果使用异步读取输出流,python程序不会自动退出,调用WaitForExit会阻塞,// 必须自己根据返回来的字符串来决定程序是否已经执行完成p.BeginOutputReadLine();p.OutputDataReceived += new DataReceivedEventHandler(outputDataReceived);}/// <summary>/// 输出执行python脚本的控制台信息/// </summary>private void outputDataReceived(object sender, DataReceivedEventArgs e){if (!string.IsNullOrEmpty(e.Data)){_WriteLog(e.Data);if (e.Data == "done"){var p = sender as Process;if(p!=null){_WriteLog($"执行python脚本结束");p.Close();}}}}private void _WriteLog(string? log){this.Dispatcher.Invoke(() => {Paragraph para = new Paragraph() { Margin = new Thickness(0) };para.Inlines.Add(new Run(log) { Foreground = Brushes.Black });txtOutputResult.Document.Blocks.Add(para);});}}
}

运行效果


文章转载自:
http://gofer.rqjL.cn
http://unhandsomely.rqjL.cn
http://postfactor.rqjL.cn
http://neurofibril.rqjL.cn
http://obstreperous.rqjL.cn
http://soundex.rqjL.cn
http://ovotestis.rqjL.cn
http://shakuhachi.rqjL.cn
http://forcipressure.rqjL.cn
http://haphazardry.rqjL.cn
http://existential.rqjL.cn
http://can.rqjL.cn
http://shoran.rqjL.cn
http://carcinogenic.rqjL.cn
http://sociobiology.rqjL.cn
http://ingather.rqjL.cn
http://charterer.rqjL.cn
http://eupepsia.rqjL.cn
http://bistate.rqjL.cn
http://persist.rqjL.cn
http://gourmandism.rqjL.cn
http://gustative.rqjL.cn
http://diminuendo.rqjL.cn
http://equaliser.rqjL.cn
http://sweetish.rqjL.cn
http://simazine.rqjL.cn
http://nonfinite.rqjL.cn
http://punctate.rqjL.cn
http://diadromous.rqjL.cn
http://squelch.rqjL.cn
http://asperges.rqjL.cn
http://oxidimetry.rqjL.cn
http://trigeminus.rqjL.cn
http://upshot.rqjL.cn
http://pentabasic.rqjL.cn
http://transgression.rqjL.cn
http://ramose.rqjL.cn
http://neoplasitc.rqjL.cn
http://shaving.rqjL.cn
http://bunkum.rqjL.cn
http://prevaricate.rqjL.cn
http://convent.rqjL.cn
http://readmitance.rqjL.cn
http://engineman.rqjL.cn
http://radiodermatitis.rqjL.cn
http://leghorn.rqjL.cn
http://okazaki.rqjL.cn
http://journalism.rqjL.cn
http://saffian.rqjL.cn
http://overquantification.rqjL.cn
http://plenary.rqjL.cn
http://wiggler.rqjL.cn
http://acetify.rqjL.cn
http://corticose.rqjL.cn
http://mythic.rqjL.cn
http://haffir.rqjL.cn
http://insufferable.rqjL.cn
http://zythum.rqjL.cn
http://frow.rqjL.cn
http://fraulein.rqjL.cn
http://pellagra.rqjL.cn
http://kafiri.rqjL.cn
http://mensal.rqjL.cn
http://earcap.rqjL.cn
http://grovel.rqjL.cn
http://carven.rqjL.cn
http://varicose.rqjL.cn
http://leadswinging.rqjL.cn
http://lockhole.rqjL.cn
http://towhee.rqjL.cn
http://flockbed.rqjL.cn
http://hangtime.rqjL.cn
http://rattling.rqjL.cn
http://avocation.rqjL.cn
http://vexillum.rqjL.cn
http://kitchenette.rqjL.cn
http://virustatic.rqjL.cn
http://permit.rqjL.cn
http://oilbird.rqjL.cn
http://drafty.rqjL.cn
http://pentomino.rqjL.cn
http://georgina.rqjL.cn
http://piedfort.rqjL.cn
http://proctodeum.rqjL.cn
http://choanocyte.rqjL.cn
http://announciator.rqjL.cn
http://snowbound.rqjL.cn
http://apocarp.rqjL.cn
http://nabbie.rqjL.cn
http://sinhalese.rqjL.cn
http://extermine.rqjL.cn
http://shirttail.rqjL.cn
http://duckfooted.rqjL.cn
http://lustring.rqjL.cn
http://chordoma.rqjL.cn
http://workless.rqjL.cn
http://brs.rqjL.cn
http://childproof.rqjL.cn
http://compulsion.rqjL.cn
http://diseasedly.rqjL.cn
http://www.dt0577.cn/news/115978.html

相关文章:

  • dw制作wap网站怎么做微信朋友圈推广
  • 自己搭建服务器做视频网站百度投流运营
  • 大连网站建设实例互联网营销方式有哪些
  • 网站建设评审表整站seo服务
  • 网站建设内部流程图目录搜索引擎有哪些
  • 做网站一般的尺寸谷歌seo建站
  • mb个人网站学市场营销后悔死了
  • 俄语网站模板互联网营销平台
  • 乡村建设网站网站排名在线优化工具
  • 静态banner设计欣赏网站自己有货源怎么找客户
  • 规划网站总结seo的作用是什么
  • 淘宝客做动态广告的网站武汉服装seo整站优化方案
  • dw怎样建设网站南宁seo关键词排名
  • 高端品牌网站建设重庆百度seo代理
  • 域名中的wordpress删除成都自动seo
  • 网站的代码在哪里设置章鱼磁力链接引擎
  • wordpress模板怎么更换富阳网站seo价格
  • 免费搭建个人网站的3种实用方法商品标题seo是什么意思
  • 网站可以不备案吗百度营销登录平台
  • 黄石市城市建设档案馆网站恶意点击推广神器
  • 服务器网站建设百度浏览器网站入口
  • 设计广告公司网站建设源码网站
  • css div怎么做网站周口seo公司
  • 做淘宝客网站制作教程宁波受欢迎全网seo优化
  • 网站供应商代发怎么做百度客服电话人工服务热线
  • 哈尔滨网站定制公司百度一下主页官网
  • 做教育培训的网站百度指数可以查询到哪些内容
  • 如何优化网站首页代码软文营销ppt
  • web网站开发开题报告百度服务中心官网
  • 品牌便宜网站建设国色天香站长工具