我有以下非常简单的 Python 程序。当我自己运行它时,它会完全按照预期创建一个新目录:
import os
os.mkdir("//myuncpath.com/folder1/newFolderName") //makes new folder in remote file store location
所以,我写了一个 NodeJS 应用程序,它只是调用这个 Python 脚本:
const {PythonShell} = require("python-shell");
let options = {
scriptPath: '/path/to/PyFile',
};
PythonShell.run('PythonFile.py', options, function (err, results) { //calls .py file to mkdir
if err: console.log(err);
})
但是,当我通过 Node 调用脚本时,Python 脚本抛出了 FIleNotFound 错误:
{ Error: FileNotFoundError: [Errno 2] No such file or directory: '//myuncpath.com/folder1/newFolderName'
at PythonShell.parseError
----- Python Traceback -----
File "/location/to/PyFile.py", line 10, in <module>
os.mkdir(sys.argv[1])
traceback: 'Traceback (most recent call last):\n File "/location/to/PyFile.py",
line 10, in <module>\n os.mkdir(my_dir)\nFileNotFoundError: [Errno 2] No such file or directory: \'//myuncpath.com/folder1/newFolderName\'\n',
executable: 'python3',
options: null,
script: '/location/to/PyFile.py',
exitCode: 1 }
这里似乎发生了什么?我很难从 Python 中解码回溯,因为对我来说一切看起来都有些正常(除了路径周围可能有些奇怪的 \n 是 \' ?)
另外,如果我只用 print("Hello")
替换 Python 中的 os.mkdir,效果很好,所以脚本被正确调用,它只是不喜欢 os.mdkir
我很感激任何帮助,我已经坚持了几个星期了。
答案 0 :(得分:0)
查看您运行代码的用户身份。当您运行 Python 脚本时,大概您正在以有权访问目标路径的用户身份运行它。但是当您通过 Node 调用它时,NodeJS 应用程序运行在什么用户上下文中?如果该用户无权访问目标路径,则 Python 脚本将无法找到目标目录以在其中创建新目录。尝试: