我正在尝试在Windows 10中使用python 3从同一目录中打开带有子进程的脚本(我是管理员),并使用pycharm,但是我尝试的任何替代解决方案都遇到以下错误:< / p>
这是我的代码:
import subprocess
subprocess.call(['C:\\Users\\CobraCommander\\PycharmProjects\\BlackBox', 'Avalon.py']) # The above "BlackBox" it's the directory for both files.
与此相关的是以下错误:
PermissionError: [WinError 5] Access is denied
如果我尝试:
subprocess.call(['python Avalon.py'])
与此相关的是以下错误:
FileNotFoundError: [WinError 2] The system cannot find the file specified
所以我尝试了:
subprocess.call(['C:\\Users\\CobraCommander\\PycharmProjects\\BlackBox\\Avalon.py'])
与此相关的是以下错误:
OSError: [WinError 193] %1 is not a valid Win32 application
我还试图从终端以管理员身份运行,并得到相同的错误:
PermissionError: [WinError 5] Access is denied
在尝试将其标记为重复之前,请注意,我已经阅读了其他文章中的错误以及子流程。
有人可以建议如何在另一个脚本中用python编写该脚本吗?
答案 0 :(得分:1)
您需要提供cwd
参数来设置工作目录:
https://docs.python.org/3/library/subprocess.html#subprocess.call
import subprocess
if __name__ == '__main__':
subprocess.run(r'touch d:\test.txt')
p = subprocess.run(r'ls -la test.txt', cwd=r'd:\\', stdout=subprocess.PIPE)
print(p.stdout.decode())
输出:
-rw-r--r-- 1 abdusco 197609 0 Jul 18 13:32 test.txt
答案 1 :(得分:1)
在脚本之前添加python
,而不是
subprocess.call(['C:\\Users\\CobraCommander\\PycharmProjects\\BlackBox\\Avalon.py'])
使用
subprocess.call(['python', 'C:\\Users\\CobraCommander\\PycharmProjects\\BlackBox\\Avalon.py'])
确保已设置PYTHONPATH环境变量。