在命令列中,我的命令python3 -u jupterlab notebook完美運行,因為 python 位于/srv/conda/envs/notebook/bin/python3.
接下來,我有一個 bash 腳本,比如說/usr/local/share/python3-login,它的內容是
#!/bin/bash -l
echo $PATH
exec python3 -u "$@"
我的問題是當我呼叫腳本時,我遇到了一個錯誤 where python3 not found /usr/local/share/python3-login: line 3: exec: python3: not found
我試圖通過echo $PATH在第 2 行添加來除錯,結果 PATH is /opt/conda/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/game,python3 不存在
如何讓我的 bash 腳本識別/srv/conda/envs/notebook/bin/python3?
為了添加更多背景關系,我使用 Ubuntu 作業系統構建了一個 docker 鏡像
uj5u.com熱心網友回復:
您可以只使用完整路徑:
#!/bin/bash -l
echo $PATH
exec /srv/conda/envs/notebook/bin/python3 -u "$@"
uj5u.com熱心網友回復:
要擴展用戶的路徑,請修改PATH環境變數。
export PATH=/srv/conda/envs/notebook/bin/python3:$PATH
uj5u.com熱心網友回復:
-l Make bash act as if it had been invoked as a login shell
這意味著它將加載各種組態檔,就像您剛剛登錄一樣
由于/srv/conda/envs/notebook/bin看起來不像在組態檔中看到的標準路徑,我懷疑您首先做了更多的事情來在 $PATH 中獲取它。
解決方案 1:只需將您在環境中獲取此路徑所做的任何操作添加到腳本中。
解決方案 2:不要-l在你的shebang 中使用引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/370499.html
