1

我在 Debian 上使用 python3.7。我有一个网络驱动器,我通常使用 和 安装到该驱动/media/N_drivedir_mode=0777file_mode=0777。我通常在这个网络驱动器中读/写文件没有问题。

有时,尤其是在安装驱动器后不久,如果我尝试运行任何 Python 脚本os.getcwd()(包括任何导入的库,如 pandas),我会收到错误消息FileNotFoundError: [Errno 2] No such file or directory。如果我 cd 到本地驱动器 ( cd /media/),则脚本运行良好。

做一些阅读,听起来这个错误表明工作目录已被删除。然而,当我在 shell 中时,我仍然可以导航到目录、创建文件等。似乎只有 Pythonos.getcwd()有问题。

更奇怪的是,这种行为是不可预测的。通常,如果我在安装驱动器后等待约 1 小时,相同的脚本将运行得很好。

我怀疑这可能与驱动器的安装方式有关?任何想法如何解决它?

4

1 回答 1

1

对我来说,这似乎是挂载的问题,例如,网络磁盘将断开连接,然后重新连接。所以你的 cwd 不是更有效。注意: cwd 指向一个磁盘+inode,它不是一个名字(你会看到)。所以与重新连接后/media/a不同/media/a

如果您正在寻找如何解决安装问题,那么您来错地方了。试试 Unix&Linux 姊妹站点,或 Serverfault(也是姊妹站点)。

如果您正在寻找如何以编程方式解决:在脚本开头保存 cwd 并os.path.join()在每次路径访问时使用,这样您就强制使用绝对路径,而不是相对路径,因此您应该位于正确的位置。如果您在断开连接期间碰巧读取了文件,则这不是保存。

于 2020-02-13T17:05:55.233 回答