Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为正确的名称(py、python、python3)运行python命令_Python_Python 3.x_Linux_Shell - Fatal编程技术网

如何为正确的名称(py、python、python3)运行python命令

如何为正确的名称(py、python、python3)运行python命令,python,python-3.x,linux,shell,Python,Python 3.x,Linux,Shell,我认为这与: 具体来说,我想在有py但没有python3的计算机上运行python3-mhttp.server,我想在有python3但没有py的计算机上运行python3-mhttp.server。我还尝试只检查版本号:py-v&&py-mhttp.server;python3-v&&python3-mhttp.server,但它似乎仍然存在同样的问题,按ctrl+C二十次并没有杀死它 我尝试了py&&py-mhttp.server;python3&&python3-mhttp.server,

我认为这与:

具体来说,我想在有
py
但没有
python3
的计算机上运行
python3-mhttp.server
,我想在有
python3
但没有
py
的计算机上运行
python3-mhttp.server
。我还尝试只检查版本号:
py-v&&py-mhttp.server;python3-v&&python3-mhttp.server
,但它似乎仍然存在同样的问题,按ctrl+C二十次并没有杀死它

我尝试了
py&&py-mhttp.server;python3&&python3-mhttp.server
,但我相信它正在python中执行第二个命令。此外,在其他计算机上还有Python的其他别名。我知道我可以将
py
设置为
python3
的别名,但我正在寻找一个通用的解决方案

(旁注:这是不一致的,这让我很困扰。它们应该都能正常工作。)

最后,我想要一个并行运行两件事的脚本:第一个是
npm run dev
,上面有一个
--watch
,必须继续运行,另一个是
cd docs/
,然后使用python在localhost上托管,然后打开chrome到
localhost:8000
,非常感谢您的帮助,还是Linux的初学者


我还想发出第二个命令,运行
npm run build
,将docs/sw.js中的第二行从
const dynamicccachename='site dynamic vNUMBER'更改将数字替换为数字+1。

这是否符合您的要求?假设bash或类似:

( py -V && py -m http.server ) || ( python3 -V && python3 -m http.server )
在“我的盒子”上,它执行以下操作:

$ ( py -V && py -m http.server ) || ( python3 -V && python3 -m http.server )
py: command not found
Python 3.5.2
Serving HTTP on 0.0.0.0 port 8000 ...

对于问题的第二部分,您可以使用类似这样的小bash脚本(我包括python或py检查):

#/bin/bash
npm运行开发人员--监视&
铬浏览器“http://localhost:8000“2>/dev/null&
cd文档/| |退出#如果cd命令失败,则退出
if命令-vpy-v&>/dev/null;然后
回声“py”
py-mhttp.server
elif命令-v python3-v&>/dev/null;然后
回声“蟒蛇3”
python3-mhttp.server
其他的
echo“未找到任何命令”
fi
&
在命令结束时,它将在后台运行,如上所述,它仍将显示命令的输出


如果使用CTRL+C终止脚本,它将终止一切,chromium、python服务器和npm运行。

我实际上想发布一个完整的答案,因为我从几个答案和评论以及与朋友聊天中得到了我想要的答案:

我同时安装了npm包
,然后在我的
包.json中添加了一个
本地dev
npm脚本:

“脚本”:{
“dev no watch”:“postsss src/styles.css-o docs/css/styles.css”,
“dev”:“postsss src/styles.css-o docs/css/styles.css-watch-verbose”,
“构建”:“跨环境节点_env=production postsss src/styles.css-o docs/css/styles.css&&cleancss-o docs/css/styles.css-docs/css/styles.css”,
“localhost”:“cd docs&&(py-V&&py-mhttp.server)| |(python3-V&&python3-mhttp.server)”,
“本地开发人员”:“并发--杀死其他人\”npm运行开发人员\“\”npm运行本地主机\”
},
它同时运行这两个命令,当按下ctrl+C时,也会同时杀死这两个命令

当然,我在原始问题的答案中添加了
localhost
,即检测python版本并正确运行它/优雅地失败等等,这很有魅力

希望这个答案对将来的人有所帮助:)


(现在,我只需要找到hos来独立地从命令行操作系统编辑一行文件)

您的目标是什么脚本语言?对于Bash,添加标记。对于泛型shell,添加标签。老实说,我不确定它是bash还是shell,我必须研究一下(抱歉,我不擅长这类东西)。shebangs是否基本上将它们都设置为相同的别名,这样我就可以只调用一个?好的,我添加了shell标记,因为它是通用的。忽略关于舍邦的评论;我误解了你在做什么。虽然如果
py-mhttp.server
返回false(比如它被杀死),那么第二部分仍将运行。公平评论。。。您可以捕获两个
-V
变体的返回码,然后选择现有的/首选的一个。。。我只是建立在他自己的方法上。
(py-V&&py-mhttp.server)|(python3-V&&python3-mhttp.server)
似乎就是我想要的,谢谢!你知道如何碰巧并行运行两个进程吗?我知道
&&
是指第一次成功,
|
是指第一次失败,
在后面运行,但我希望它们并行运行。无论如何,我会把这个标记为答案,因为它回答了我的主要问题,谢谢。
(py-V&&py-mhttp.server&);(python3-V&&python3-mhttp.server&)
。。。不过,不确定“并行运行”;一旦一个抢占了端口,另一个就会失败……我的意思是,为了其他事情并行运行。我现在有
build
localhost
作为npm命令,我希望能够同时运行它们,但目前只有一个命令运行:
“build”:“cross env NODE_env=production postsss src/styles.css-o docs/css/styles.css&&cleancss-o docs/css/styles.css/css.css”,“localhost”:“cd docs&”(py-V&&py-mhttp.server)|(python3-V&&python3-mhttp.server)”,“本地开发人员”:“npm运行开发人员和npm运行本地主机”
Ooh这看起来棒极了,谢谢,我现在就测试它。所以我将它保存为
.sh
文件,然后运行
sh myfile.sh
?我只是尝试
npm-run-dev&npm-run-localhost
但在CTRL+C之后,我无法在后台杀死节点,即使是
sudo-pkill节点
sudo-killall节点
it-still出现在
ps
中,但不起作用。输出:它在bash中(正如您在fi中看到的)