我有一个名为user_module
的python模块,它位于已安装的网络位置。
在我使用的脚本中,我需要导入该模块 - 但由于NFS问题,有时这条路径不可用,直到我们实际将目录更改为相关的路径和\或重新启动autofs服务
为了重现问题并尝试使用它 - 我手动停止了autofs服务,并试图用我的WA运行我的脚本 - (可能不是最优雅的一个):
import os
import sys
from subprocess import call
PATH="/some/network/path"
sys.path.append(PATH)
try:
os.chdir(PATH)
import user_module
except:
print "Unable to load user_module, trying to restart autofs service"
call(['service', 'autofs', 'restart'])
os.chdir(PATH)
import user_module # Throws Import error!
但是,由于路径不可用,我仍然会导致导入错误。
现在我觉得这很奇怪 - 在同一台机器上,我尝试执行与我脚本相同的操作,故意预先停止autofs服务,并且它完美无缺 -
[root@machine]: service autofs stop # To reproduce the import error
[root@machine]: python
>>> import os
>>> import sys
>>> from subprocess import call
>>> PATH="/some/network/path"
>>> sys.path.append(PATH)
>>> os.chdir(PATH)
######################################################################
################## exception of no such file or directory ############
######################################################################
>>> call(['service', 'autofs', 'restart'])
>>> os.chdir(PATH) # No exception now after restarting the service
>>> import user_module # NO Import error here
有人可以对情况有所了解 并向我解释为什么同样的方法通过python CLI工作,但通过脚本?
我不知道的是什么,或者我在这里失踪了什么? 另外 - 如何克服这个?
由于