我想实现从Windows到Linux的POpen-code:
- 作者: 一生霸气帝王道
- 来源: 51数据库
- 2022-10-19
问题描述
我想实现从Windows到Linux的代码:
a=subprocess.Popen(['python.exe','hello.py'])
推荐答案
有两个问题。首先,python.exe在Linux中被简单地称为python,其次,python可执行文件不在当前目录中,而是位于系统路径中的某个位置。要让Linux在路径中查找python,您可以让POpen使用一个外壳:
a=subprocess.Popen(['python','hello.py'], shell=True)
或者您可以使用env程序查找它:
a=subprocess.Popen(['/usr/bin/env', 'python','hello.py'])
作为第三种选择,您可以使用Linuxshebang方法启动hello.py脚本,并通过以下三项操作让Windows文件关联在python解释器中运行:
- 将hello.py的第一行改为#!/usr/bin/env python
- 执行chmod a+x hello.py操作,将文件hello.py标记为在Linux中可执行。
在外壳中运行hello.py脚本
a=subprocess.Popen('hello.py', shell=True)
这将使脚本在Windows和Linux中以相同的方式工作。
请注意Shebang行:hello.py必须使用UNIX行结束约定保存,否则会出现一个模糊的‘pythonNot Found’错误。这是由额外的‘ ‘由Windows编辑器添加,让外壳程序查找名为'python '的文件--这个文件当然不存在。您可以使用dos2unix工具将hello.py转换为UNIX行结尾。所有受人尊敬的文件编辑器在设置为Unix后都将保留行尾。
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
