python:
新建一个py文件“__init__.py”,简单测试
def main(): return 11111; def test1(name): return name;
把它扔到一个文件夹 例如 “mytest1”下,在mytest1外新建py文件“setup.py” ,内容:
from setuptools import find_packages,setup setup( name = 'mytest1', version = '0.1', packages = find_packages(), )
在setup.py路径内进入cmd, 运行 python setup.py install。 不报错的话直接就打包好了,可以在C#下import 《mytest1》,然后调用main或者test1方法。
以上只是我的简单测试方式,关于打包方式还有很多方式,比如先打包 python setup.py sdist 然后再安装 pip install xxx……。
C#:
根据本机的python版本选择引用的依赖包:pythonnet_netstaandard_py39_win(提示不支持net6就换个版本,vs的bug)
引用python的代码:
using (Py.GIL()) { dynamic np = Py.Import("numpy"); Console.WriteLine(np.cos(np.pi * 2)); dynamic ooo = Py.Import("mytest1"); dynamic s = "123"; dynamic str = ooo.main(); Console.WriteLine(str); str = ooo.test1(s); Console.WriteLine(str); }