net core python_.NET Core 3.1 启动 Flask for Python

C#

C#开发

C#语言

.NET Core 3.1 启动 Flask for Python

概览

最近有个需求是通过c#代码来启动python 脚本。嘿~嘿!!!

突发奇想~~既然可以启动python脚本,那也能启动flask,于是开始着手操作。

先看一波gif图

通过打开控制台启动flask web程序

首先我们应该准备!

准备

因为使用的是.NET Core 3.1 来创建的控制台程序,所以需要下载dotnet-sdk-3.1, 如果使用的是.Net Framework直接运行即可

大部分客户机系统安装的都是纯净版本,往往缺少一部分组件,所以我们在纯净的环境下需要准备必备组件:

dotnet-sdk-3.1.100-win-x64.exe

实现

通过Process来启动flask的server.py

cmd

cd Desktop

mkdir test

cd test

code .

ctrl + j

dotnet new console

using System;

using System.Diagnostics;

using System.IO;

using System.Linq;

namespace tes

{

class Program

{

private static string _basePath => AppDomain.CurrentDomain.BaseDirectory;

private static string _srcPath => Path.Combine(_basePath, @"AnWorkersrc");

private static string _venvPath => Path.Combine(_basePath, @"AnWorkervenv");

static void Main(string[] args)

{

// string fileName = Path.Combine(_venvPath, "Scripts", "python.exe");

// string arguements = Path.Combine(_srcPath, "server.py");

var workPath = Path.Combine(_venvPath, "Scripts");

var fileName = Path.Combine(workPath, "python.exe");

var arguements = Path.Combine(_srcPath, "server.py");

Console.WriteLine(fileName);

Console.WriteLine(arguements);

var psi = new ProcessStartInfo(fileName)

{

Arguments = arguements,

WorkingDirectory = _venvPath,

ErrorDialog = false,

UseShellExecute = false

};

var path = psi.EnvironmentVariables["PATH"];

if (path != null)

{

var arrayt = path.Split(new[] { ';' }).Where(p => !p.ToLower().Contains("python")).ToList();

arrayt.AddRange(new[] { _venvPath, Path.Combine(_venvPath, "Lib") });

psi.EnvironmentVariables["PATH"] = string.Join(";", arrayt);

}

Process.Start(psi);

Console.ReadLine();

}

}

}

图1

图2

结构说明与配置

AnWorker 脚本网站的代码结构(看图1图2)需要说明几点

venv 是虚拟环境,学过Python的都明白

/venv/Lib 把Python 3的系统依赖库(PythonPython37Lib 此文件夹下 除 site-packages 文件夹)存放在里面,不然启动不成功

/venv/DLLs (不然则会缺少一大堆的模块在路上)

/venv/Scripts 替换掉原有的虚拟环境

doc 是存放文档

src 是源码

结束

阐述下自己的观点,看官可能会问到干嘛不直接F5,其不是更好,最后发现没有一点diao用,我想说:存在即合理

现在Python应用很广,任何语言都有可能会使用到脚本开发。

这个时候,C# 调用Python 应运而生!安排~

内容来源于网络,如有侵权请联系客服删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值