首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyenv全局似乎不适用于pyenv 2.0.4

pyenv全局似乎不适用于pyenv 2.0.4
EN

Stack Overflow用户
提问于 2021-08-10 20:22:01
回答 1查看 275关注 0票数 1

pyenv global似乎已经停止使用新版本的pyenv了。

代码语言:javascript
复制
pyenv --version
pyenv 2.0.4-8-gd209e061
代码语言:javascript
复制
pyenv versions
  system
* 2.7.5 (set by /home/user/horchee/.pyenv/.python-version)
  3.6.5
  3.6.9

pyenv global 3.6.5

pyenv versions
  system
* 2.7.5 (set by /home/user/horchee/.pyenv/.python-version)
  3.6.5
  3.6.9

不过,shelllocal命令似乎起作用了。

知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-20 14:48:50

我个人见过几件事情导致了这个问题。

第一个是我安装Anaconda的时候。我不得不在Anaconda之后移动pyenv配置块。这解决了那个案子的问题。

在第二个例子中,我发现了一个问题,让我想出了如何让它再次发挥作用:

https://github.com/pyenv/pyenv/issues/2026

基本上,我的配置文件中有这一行(在我的示例中是.zshrc,因为我最初使用的是ZSH):

代码语言:javascript
复制
eval "$(pyenv init -)"

然后我把它改为这个,只是增加了第一行,它解决了我的情况下的问题。

代码语言:javascript
复制
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

在pyenv自述的高级配置部分中有关于此的详细信息:https://github.com/pyenv/pyenv#advanced-configuration

以下是该节的副本:

高级配置

跳过本节,除非您必须知道shell配置文件中的每一行都在做什么。

pyenv init是唯一跨越将额外命令加载到shell的行的命令。来自RVM,你们中的一些人可能会反对这个想法。

还请参阅控制Pyenv行为的环境变量的环境变量部分。

代码语言:javascript
复制
eval "$(pyenv init --path)":

设置你的沙姆路径。这是pyenv正常工作的唯一要求。您可以通过将$(pyenv )/shims预置到您的$PATH中来手动完成此操作。eval "$(pyenv init - PATH )“应该在会话的登录shell启动脚本中运行,这样会话中的所有进程都可以访问Pyenv的功能,并且只能运行一次,避免了嵌套shell中的中断路径(例如,shell从编辑器/IDE开始)。

在Linux中,GUI管理器通常充当sh登录shell,在启动时运行/etc/profile和~/.profile。MacOS的GUI没有这样做,因此它的终端模拟器应用程序默认情况下以登录shell的形式运行它们的shell以进行补偿。

代码语言:javascript
复制
eval "$(pyenv init -)":

安装自动完成。这完全是可选的,但非常有用。获取$(pyenv )/completions/pyenv.bash将设置这一点。对于Zsh用户,还有一个$(pyenv )/completions/pyenv.zsh。

令人毛骨悚然。有时,您需要重建您的shim文件。在init上这样做可以确保一切都是最新的。您始终可以手动运行pyenv重哈希。

将pyenv作为shell函数安装到当前shell中。此位也是可选的,但允许pyenv和plugins更改当前shell中的变量,从而使类似pyenv的命令成为可能。sh dispatcher不会做任何疯狂的事情,比如覆盖cd或黑入您的shell提示符,但是如果出于某种原因需要pyenv成为真正的脚本而不是shell函数,则可以安全地跳过它。

eval "$(pyenv init -)“应该在任何交互式shell的启动(包括嵌套shell)中运行,这样您就可以获得完成和方便的shell函数。

要确切地了解在引擎盖下发生了什么,请运行pyenv init或pyenv init路径。

如果您不想使用pyenv init和shims,您仍然可以从pyenv为您安装Python版本的能力中获益。只需运行pyenv,您将发现安装在$(pyenv )/versions中的版本,您可以根据需要手动执行该版本或符号链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68733068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档