簡體   English   中英

如何讓 pyenv 顯示已安裝版本的可執行路徑?

[英]How do I get pyenv to display the executable path for an installed version?

使用以下命令安裝 python 版本:

$ pyenv install 3.8.9
Installed Python-3.8.9 to /Users/robino/.pyenv/versions/3.8.9

列出現在可用的 python 版本:

$ pyenv versions
  * system
  3.8.2
  3.8.9

一周過去了,我忘記了它的安裝位置。 現在假設我想獲取 3.8.9 版本的可執行路徑。 以下不起作用:

$ pyenv which 3.8.9
  pyenv: 3.8.9: command not found
$ pyenv which python 3.8.9
  (gives path to system python)
$ pyenv which python-3.8.9
  pyenv: python-3.8.9: command not found
$ pyenv which Python-3.8.9
  pyenv: Python-3.8.9: command not found

我發現的解決方法是設置 python 版本,檢查,然后將其設置回系統:

$ pyenv local 3.8.9
$ pyenv which python
  /Users/robino/.pyenv/versions/3.8.9/bin/python
$ pyenv local --unset

然而,這是一個次優的解決方案,因為它要求沒有本地是先前設置的。

使用 pyenv 打印出當前未使用版本的 python 可執行路徑的正確命令是什么?

默認情況下,可以在$(pyenv root)/versions/{VERSION}/bin/python找到 pyenv 可執行文件。 我不知道顯示除pyenv which python以外的所有/任何可執行文件的命令。

如果你想通過命令獲取路徑,另一種選擇是創建一個臨時子目錄並在那里設置本地 pyenv 解釋器:

$ mkdir tmp; cd tmp
$ pyenv local 3.8.9
$ pyenv which python
  /Users/robino/.pyenv/versions/3.8.9/bin/python
$ cd ..; rm -r tmp

由於較深的目錄優先使用本地 pyenv 版本,因此在這種情況下父目錄不會干擾。

另一種選擇是臨時設置全局 pyenv 版本,因為這不需要不設置本地 pyenv 版本。 我不喜歡這個,因為我可能會忘記將它設置回原來的值;)

我稍微簡化了一下,命令在子命令中運行,應該不會有副作用。

echo $(pyenv shell 3.9.15; pyenv which python)
# /Users/tomy0000000/.pyenv/versions/3.9.15/bin/python

暫無
暫無

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

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