簡體   English   中英

在Windows上通過MINGW32在Python中進行系統調用

[英]System Call in Python via MINGW32 on Windows

我試圖找出一種從Windows機器上的python腳本調用wget的方法。 我在計算機上的/ bin下安裝了wget。 無論我如何嘗試,使用subprocess或os模塊進行調用似乎都會引發錯誤。 我假設這與我需要通過minGW路由python系統調用以便識別wget的事實有關。

有人知道如何處理嗎?

謝謝

在“ MinGW”下沒有這樣的東西。 您可能是在MSYS(Windows的Unix仿真環境)下指的。 MSYS使事情看起來像Unix,但是您仍然在Windows下運行所有​​內容。 特別是MSYS將/bin映射到安裝MSYS的驅動器和目錄。 如果將MSYS安裝到C:\\MSYS則您的MSYS /bin目錄實際上是C:\\MSYS\\bin

當將/bin添加到MSYS PATH環境變量時,MSYS搜索目錄C:\\MSYS\\bin 使用命令SETX/bin添加到Windows PATH環境中時,Windows將在當前驅動器的\\bin目錄中查找。

大概您的Python版本是Python的標准Windows端口。 由於它是普通的Windows應用程序,因此不會按照您期望的方式解釋PATH環境變量。 在路徑中使用/bin ,它將搜索當前驅動器的\\bin目錄。 由於wget位於當前目錄的C:\\MSYS\\bin而不是\\bin ,因此在嘗試從Python運行它時出現錯誤。

請注意,如果您從MSYS Shell運行Windows命令,MSYS將自動將其PATH轉換為Windows兼容格式,從而將MSYS路徑名更改為Windows路徑名。 這意味着您應該能夠通過從MSYS Shell運行Python來使Python腳本正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM