chilli6519 2023-03-27 07:49 采纳率: 0%
浏览 4

[Errno 2] No such file or directory: 'XXXX.txt'

[Errno 2] No such file or directory: 'XXXX.txt'

在C# 环境通过pythonnet调用py文件

独立的py文件可以正确执行

但在pythonnet中执行,提示 [Errno 2] No such file or directory: 'XXXX.txt'

py执行时确实需要读取 这个文件,但在python环境下执行py文件能找到这个文件(实际在py文件同一个目录下),通过pythonnet执行py文件就提示错误

 

 

  • 写回答

1条回答 默认 最新

  • bilal-abdurehim 2023-03-30 10:42
    关注

    原因在于,Python.NET在执行Python脚本时,使用的是当前项目的工作目录。如果Python脚本中使用了相对路径或没有指定完整路径,就会使用工作目录下的相对位置进行查找,导致找不到文件。

    解决方法有两种:

    1. 在Python脚本中使用绝对路径,指定完整的文件路径,这样就不会使用工作目录进行查找了。
    2. 在Python.NET中调用Python脚本前,先设置工作目录。可以使用如下方法设置:
    PythonEngine engine = Python.CreateEngine();
    engine.Runtime.IO.SetDefaultWorkingDirectory("D:\\test");
    engine.ExecuteFile("[test.py](http://test.py/)");
    

    设置工作目录后,再执行Python脚本,就会使用设置的工作目录进行查找,避免找不到文件问题。

    通过上述两种方法,在C#环境中使用Python.NET调用Python脚本时,也可以正常使用相对路径或没有指定完整路径的情况下,避免找不到文件这样的错误。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月27日

悬赏问题

  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像