[英]Cannot run a python file from a windows ps1 file
我有一个带有简单 function 的 ps1 文件(名为 NPScript.ps1),我在 PowerShell 中用作 cmdlet(运行 Z0F4137ED1502B5045D60813AA258B5C42)。
function add-np() {
Set-Location C:\Users\emers\Desktop\Code\Projects
python.exe C:\Users\emers\Desktop\Code\mybin\NPPythonScript.py
}
第一部分, Set-Location部分,当我在 PowerShell 中调用add-np时工作得很好。 我有一个 python 脚本(NPPythonScript.py),当调用此 function 并且该部分(见上文)不工作时,我也想执行该脚本,它当前不输出任何内容。 python 文件当前应该只打印“Hello!” . 当我运行这个:
python.exe C:\Users\emers\Desktop\Code\mybin\NPPythonScript.py
或这个:
python C:\Users\emers\Desktop\Code\mybin\NPPythonScript.py
在 PowerShell 中,它工作得很好并且可以正常打印。 我试过把 python.exe 的完整路径放在没有运气的地方。 我尝试了一条 shebang 线,尽管据我所知这确实适用于 linux/OS 上下文。 也许我没有正确实施......? 我在这里看到了其他一些答案,表明如果 python.exe 的位置在我的路径中,我应该有什么工作。 由于我在 PowerShell 中运行的线路很好,而我的 function 适用于其中的其他内容,我只是想不通,我一直在寻找我的具体情况的答案几个小时。
我通过使用 add-np cmdlet 调用 function,这对于 function 的第一部分(设置位置部分)工作得很好。
在评论者 VirtualScooter 的建议下,我做了一个简短的中间测试,看看线路是否在 function 之外运行,所以我重新组织如下:
python.exe C:\Users\emers\Desktop\Code\mybin\NPPythonScript.py
function add-np() {
Set-Location C:\Users\emers\Desktop\Code\Projects
}
当我在 PowerShell 中运行文件时,这确实按预期运行,并且我的 function 在调用时仍然可以将我移动到项目文件夹中。
我必须相信唯一的错误是我没有正确地重新启动我的终端(尽管我发誓我已经这样做了)。 因为这个新代码在调用 function 时可以正常运行,而我在语法上基本上没有做任何不同的事情。
function New-project {
Set-Location C:\Users\emers\Desktop\Code\Projects
python.exe C:\Users\emers\Desktop\Code\mybin\NPPythonScript.py
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.