Python.Net - 如何从文件 (.Py) 运行 python 编写脚本
Python.Net - How to run python script from file(.Py)
如何使用 python.Net 库 运行 .py 文件和调用函数。
我试过下面的代码,但它不是 运行ning.
using (Py.GIL()){
var fromFile = PythonEngine.Compile(null, @"C:\PycharmProjects\pythonenet\main.py", RunFlagType.File);
fromFile.InvokeMethod("replace");//
}
main.py 文件:
import re
def replace():
print(re.sub(r"\s","*","Python is a programming langauge"))
当我尝试从字符串 运行 时它正在工作。
using (Py.GIL()){
string co = @"def someMethod():
print('This is from static script')";
var fromString = PythonEngine.ModuleFromString("someName", co);
fromString.InvokeMethod("someMethod");
}
Python.NET (pythonnet) 的目的是为 .NET 开发人员启用快速脚本编写。 Python.NET 用于编写 .NET 组件脚本(如 C#、VB.NET、F3)。如果您的目标是制作一个 Python 程序 运行 另一个 Python 程序,您可以使用 Python:
提供的功能
# service.py
import main
def something():
print('service: something()')
if __name__ == '__main__':
something()
main.something()
# main.py
import subprocess
def something():
print('main: something()')
if __name__ == '__main__':
something()
subprocess.call("service.py", shell=True)
下面第一组的输出是由运行宁main.py
程序产生的,第二组的输出是由运行宁service.py
产生的] 程序。
# Running the "main.py" file produces the following output:
main: something()
service: something()
main: something()
# Running the "service.py" file produces the following output:
service: something()
main: something()
注意上面使用了两种不同的解决方案:
- 添加了
import main
命令行以将 main.py
文件包含在 service.py
文件中。
subprocess
模块用于 运行 来自 main.py
文件的 service.py
文件。
最后我得到了以下解决方案。
using (Py.GIL()){
dynamic os = Py.Import("os");
dynamic sys = Py.Import("sys");
sys.path.append(os.path.dirname(os.path.expanduser(filePath)));
var fromFile = Py.Import(Path.GetFileNameWithoutExtension(filePath));
fromFile.InvokeMethod("replace");
}
如何使用 python.Net 库 运行 .py 文件和调用函数。 我试过下面的代码,但它不是 运行ning.
using (Py.GIL()){
var fromFile = PythonEngine.Compile(null, @"C:\PycharmProjects\pythonenet\main.py", RunFlagType.File);
fromFile.InvokeMethod("replace");//
}
main.py 文件:
import re
def replace():
print(re.sub(r"\s","*","Python is a programming langauge"))
当我尝试从字符串 运行 时它正在工作。
using (Py.GIL()){
string co = @"def someMethod():
print('This is from static script')";
var fromString = PythonEngine.ModuleFromString("someName", co);
fromString.InvokeMethod("someMethod");
}
Python.NET (pythonnet) 的目的是为 .NET 开发人员启用快速脚本编写。 Python.NET 用于编写 .NET 组件脚本(如 C#、VB.NET、F3)。如果您的目标是制作一个 Python 程序 运行 另一个 Python 程序,您可以使用 Python:
提供的功能# service.py
import main
def something():
print('service: something()')
if __name__ == '__main__':
something()
main.something()
# main.py
import subprocess
def something():
print('main: something()')
if __name__ == '__main__':
something()
subprocess.call("service.py", shell=True)
下面第一组的输出是由运行宁main.py
程序产生的,第二组的输出是由运行宁service.py
产生的] 程序。
# Running the "main.py" file produces the following output:
main: something()
service: something()
main: something()
# Running the "service.py" file produces the following output:
service: something()
main: something()
注意上面使用了两种不同的解决方案:
- 添加了
import main
命令行以将main.py
文件包含在service.py
文件中。 subprocess
模块用于 运行 来自main.py
文件的service.py
文件。
最后我得到了以下解决方案。
using (Py.GIL()){
dynamic os = Py.Import("os");
dynamic sys = Py.Import("sys");
sys.path.append(os.path.dirname(os.path.expanduser(filePath)));
var fromFile = Py.Import(Path.GetFileNameWithoutExtension(filePath));
fromFile.InvokeMethod("replace");
}