簡體   English   中英

python3不會從mac shell腳本運行

[英]python3 won't run from mac shell script

我試圖在macOS 10.12上使用Automator來啟動Python 3腳本。 當我使用以下命令從終端運行腳本時,腳本運行正常: python3 my_script.py

Automator有一個“運行Shell腳本”功能,它使用/ bin / bash shell。 shell將使用以下命令運行腳本: python my_script.py ,但這似乎只適用於用Python 2.7編寫的腳本。

我的腳本以#!/usr/bin/env python3開頭,我認為它會將shell指向正確的python解釋器,但似乎並非如此。

作為一種解決方法,如果我插入python解釋器的完整路徑,我可以運行腳本: /Library/Frameworks/Python.framework/Versions/3.5/bin/python3 ,但我認為這是次優的,因為命令可能不是如果/當我更新到Python 3.6時工作。

有沒有更好的方法來指導/ bin / bash shell運行Python3腳本?

由於你有shebang行,你可以做./my_script.py ,它應該運行Python 3。

您可以使用brew install python3通過Homebrew安裝Python 3,並使用#!/usr/local/bin/python3作為您的shebang。

不是一個完美的解決方案,但仍然比使用解釋器的完整路徑更好。

您可以創建~./bash_profile文件並將路徑導出到python 3 bin文件夾,它看起來像

export PATH=“path-to-python3-bin-folder:$PATH”

每次進入Terminal時,鍵入source ~./bash_profile ,現在可以調用python3作為終端中的函數來調用代碼。

另一方面,我建議你下載Anaconda,因為你可以使用你想要的python版本輕松創建虛擬環境。

如果python引用Python 2那么那就是你應該期待的。 在命令行中使用python3 ,或者按照腳本本身來定義其解釋器。

更詳細一點,確保文件的第一行包含有效的shebang(你似乎已將其排序); 但是如果你明確地說python script.py那么shebang不會影響將使用哪個解釋器。 相反,使文件可執行,並使用./script.py運行它。

實際上,您也可以在命令行中使用env env python3 script.py應該在提示符下工作。

暫無
暫無

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

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