【发布时间】:2021-03-22 04:28:52
【问题描述】:
我正在尝试制作一个可以执行简单任务的助手,例如关闭计算机等。为此,我选择了 python 和 Visual Basic ..... Visual Basic 用于显示(前端应用程序)和 python 用于执行任务(后端应用)。所以我创建了一个名为 main.py 的 py 文件并创建了一个名为 query 的文件夹,并在其中创建了一个名为 query.jarvis 的文件,该文件可以简单地作为文本文件打开。 vb(visual basic) 程序只需将文本写入 query.jarvis,然后运行 main.py 文件。当我通过双击 main.py 文件手动运行它时,它工作正常(就像在查询中是“关闭”并且在通过双击我的计算机关闭运行 main.py 文件之后)但是当我尝试从 vb 运行它时它显示找不到错误文件 query\query.jarvis 。我什至尝试通过 pyinstaller 将 py 文件转换为 exe,但它再次显示相同的错误,但仅当我从 vb 运行它时。
*main.py()
def check(q):
#here was performing task according to query
f=open("query\query.jarvis")
#here the error occured
x=f.readlines()
d=x[0]
d=d.strip()
q=d.lower()
check(q)*
*vb.net
objWriter123.Close()
Dim objWriter As New System.IO.StreamWriter(moddir + "query\query.jarvis")
#here moddir is the directory of main.py file
objWriter.Write(UserQuery.Text)
objWriter.Close()
UserQuery.Text = ""
Process.Start(moddir + "main.py", AppWinStyle.MinimizedNoFocus)*
【问题讨论】:
-
至于您的问题,问题可能是您没有为新流程润湿
WorkingDirectory。许多应用程序假定当前目录是运行它们的任何文件夹,而您的代码会将其设置为与您的应用程序相同的当前目录。无论您将在控制台窗口中“cd”到什么文件夹,您都应该将其设置为WorkingDirectory。 -
啊!请阅读我实际写的内容,而不是您认为我写的内容。在文件资源管理器中双击文件时会发生什么是无关紧要的。我没有说您为 main.py 使用了错误的文件路径。我特别说你在运行它时没有设置
WorkingDirectory。尝试打开搜索引擎,了解如何在调用Process.Start时设置WorkingDirectory。 -
Ohkkk 我现在想通了...非常感谢您...问题出在 main.py 文件中...再次感谢您,尽管您有点粗鲁但没关系
-
我不想浪费时间重复自己。我认为寻求帮助然后在提供建议时没有正确阅读建议有点粗鲁。此外,如果您在其他人之前回答了自己的问题,您实际上应该发布一个显示解决方案的答案,以帮助其他可能发现此问题的人遇到相同或类似的问题。这就是这个网站的运作方式。据我所知,您不需要最低声望就能做到这一点,但我无法确定。
-
先生,实际上我们(我和我的朋友具有相同的 stackoverflow id)只是在校学生,我们正在尝试一些新的东西......我们遇到了这个问题,一旦我们完成了我们正在做的事情,我们一定会为其他人发布解决方案并帮助社区发展
标签: python vb.net file-not-found