簡體   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