繁体   English   中英

无法从 windows ps1 文件运行 python 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM