os.system 命令无法调用Windows subsystem for linux(WSL)命令

问题一:

  1. 按照官方文档安装配置Windows subsystem for linux后用cmd或powershell 执行wsl 相关命令均正常,通过python 自带的os.system执行wsl 相关命令提示:'wsl' 不是内部或外部命令,也不是可运行的程序\n或批处理文件。\n"

  2. 在pycharm的调试工具下查看windows/system32文件夹下的列表,wsl相关的文件均不在,但是实际该文件夹是存在的

  3.在别人的电脑上是正常的

临时解决方案:

  1.原理上从ubunut端启动命令运行,即通过os.system执行windows上的ubuntu1804.exe

  2.根据帮助在后后面带上run + 执行的命令:路径\ubuntu1804.exe run pwd

  3. 如cmd1 = "{0} pwd".format(wsl_path)     wsl_path: exe所在的路径\ubuntu1804.exe run

  注意事项:

  1. 要运行ubuntu上的二进制文件是要在ubuntu 上安装对应的依赖

  2. 如果执行的文件是在windwos上要注意路径

  3.举例:

    3.1: 文件就在ubuntu 那侧test.py运行,从打开的应用上如图所示:

    此时os.sytem("{0} python3 /home/sunada/test.py".format(wsl_path))

    3.2: 如果文件在windows桌面或其他盘,又要让ubuntu上执行,此时先确定pwd

      如图测试得:

      此时os.system("{0} python3 /mnt/c/Users/Admin/Desktop/tmp.py".format(wsl_path))即可:

     如下图所示:

     需注意:该命令敲出去就已经在执行。 像本人图片做的是单例测试并没有做成异步的,所以需要等待tmp.py文件执行完成的时间实在subprocess的设置的超时范围内才不会报超时,否则会爆超时的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值