用C语言运行Python脚本#

2024-06-01 02:45:08 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个超级Python脚本,将来需要运行cv2。。。在

import cv2

def method():
    print("Hello")
    parameter = "l"
    return "OOPS"

method()

像这样的事情。在

^{pr2}$

但这确实抛出了一个错误“ImportError:DLL load failed”。好吧,因为我有大约4个Python解释器,它似乎在错误的目录中查找库。遵循快速修复。在

string path = @"D:\Programming\Python;" + Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine);
            Environment.SetEnvironmentVariable("PATH", path, EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("PYTHONHOME", @"D:\Programming\Python;", EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("PYTHONPATH ", @"D:\Programming\Python\Lib; D:\Programming\Python\DLLs", EnvironmentVariableTarget.Process);
            string fileName = @"..\Python\hello.py";

            Process p = new Process();
            p.StartInfo = new ProcessStartInfo(@"D:\Programming\Python\python.exe", fileName)
            {
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };
            p.Start();
            string output = p.StandardOutput.ReadToEnd();

导入DLL现已修复,但出现了另一个名为
Python致命错误:initfsencoding:无法加载文件系统编解码器
ModuleNotFoundError:没有名为“encodings”的模块

现在我迷路了,不知道下一步该怎么办。。。欢迎有任何想法,祝你今天愉快。在

更新: 删除了除anaconda和一个虚拟环境之外的所有其他python解释程序,并尝试执行以下操作:

  1. 使用给定的解释程序从visualstudio代码运行Python脚本,工作正常。在
  2. 从水蟒的提示下查。在
  3. 手动添加到系统环境变量
    路径=D:\Programming\Python
    PYTHONHOME=D:\Programming\Python PYTHONPATH=D:\Programming\Python\Lib;D:\Programming\Python\dll;D:\Programming\Python\Lib\site packages

所以现在我可以从cmd成功地调用“python”,像这样检查版本,虚拟环境是python3.6,这是正确的。 Python is correct
但这是所有的乐趣开始,你会期待“你好”在你的控制台。。。 hell incarnate


Tags: path脚本stringenvironmentlib错误cv2process