因此,我正在编写一个python脚本,它会在脚本开头自动下载更新。好吧因此,当我尝试覆盖它时,它使用CodeRunner 2.0.2,IDLE 2.7.9和PythonLauncher给了我sh: /Users/<user>/Desktop/<scriptname>.py: Permission denied。这是受影响的代码段:

cwd = os.getcwd()
cwd = (str(cwd) + "/<scriptname>.py")
update = urllib.URLopener()
cwd = str(cwd)
print "Downloading Update..."
update.retrieve("http://<site_domain>/<scriptname>.py",cwd)
time.sleep(1.25)
print "Update Dowloaded! Please Wait..."
time.sleep(2.5)
os.system(cwd)


我发现这很奇怪,因为人们说它不应该覆盖任何问题,但是,当我没有兄弟.pyc时我发现它很奇怪,这意味着它可能一直在尝试同时读写,更不用说它可以正常工作了,然后突然去了kaput。

最佳答案

os.system(cmd)将呼叫[current directory]/<scriptname>/py

与其直接调用脚本(它可能不是可执行的),不如将其传递给Python:

cwd = os.path.join(os.getcwd(), "<scriptname>.py")
...
os.system('{} {}'.format('python', cmd))

关于python - 尝试从另一个python脚本中运行python脚本时,出现“权限被拒绝”!,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29106339/

10-10 15:36