我想将 Python3 与 pyenv 一起使用。
$ pyenv root
/Users/asari/.pyenv
$ pyenv versions
system
2.7.15
3.6.2
3.6.3
3.6.4
* 3.6.6 (set by /Users/asari/workspace/hoge/.python-version)
$ python -V
pyenv: python: command not found
The `python' command exists in these Python versions:
2.7.15
Run Code Online (Sandbox Code Playgroud)
但是,找不到 python 命令。
我读了一下.pyenv/shims/python,以为里面没有python .pyenv/versions/3.6.6/bin/,但不知道为什么缺少python。
$ pwd
/Users/asari/.pyenv/versions/3.6.6/bin
$ ls -la
total 12096
drwxr-xr-x 19 asari staff 608 8 16 00:51 .
drwxr-xr-x 6 asari staff 192 8 16 00:51 ..
lrwxr-xr-x 1 asari staff 8 8 16 00:51 2to3 -> 2to3-3.6
-rwxr-xr-x 1 asari staff 135 8 16 00:51 2to3-3.6
-rwxr-xr-x 1 asari staff 276 8 16 00:51 easy_install-3.6
lrwxr-xr-x 1 asari staff 7 8 16 00:51 idle3 -> idle3.6
-rwxr-xr-x 1 asari staff 133 8 16 00:51 idle3.6
-rwxr-xr-x 1 asari staff 258 8 16 00:51 pip3
-rwxr-xr-x 1 asari staff 258 8 16 00:51 pip3.6
lrwxr-xr-x 1 asari staff 8 8 16 00:51 pydoc3 -> pydoc3.6
-rwxr-xr-x 1 asari staff 118 8 16 00:51 pydoc3.6
lrwxr-xr-x 1 asari staff 9 8 16 00:51 python3 -> python3.6
lrwxr-xr-x 1 asari staff 16 8 16 00:51 python3-config -> python3.6-config
-rwxr-xr-x 2 asari staff 3078944 8 16 00:51 python3.6
lrwxr-xr-x 1 asari staff 17 8 16 00:51 python3.6-config -> python3.6m-config
-rwxr-xr-x 2 asari staff 3078944 8 16 00:51 python3.6m
-rwxr-xr-x 1 asari staff 2076 8 16 00:51 python3.6m-config
lrwxr-xr-x 1 asari staff 10 8 16 00:51 pyvenv -> pyvenv-3.6
-rwxr-xr-x 1 asari staff 475 8 16 00:51 pyvenv-3.6
Run Code Online (Sandbox Code Playgroud)
$路径
$ echo $PATH | perl -p -e 's/:/\n/g'
/Users/asari/.pyenv/shims
/Users/asari/.pyenv/bin
/Users/asari/.rbenv/shims
/Users/asari/.cargo/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
Run Code Online (Sandbox Code Playgroud)
安装日志
$ echo $PATH | perl -p -e 's/:/\n/g'
/Users/asari/.pyenv/shims
/Users/asari/.pyenv/bin
/Users/asari/.rbenv/shims
/Users/asari/.cargo/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
Run Code Online (Sandbox Code Playgroud)
$ pyenv install 3.6.6
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.6.tar.xz...
-> https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Installing Python-3.6.6...
python-build: use readline from homebrew
Installed Python-3.6.6 to /Users/asari/.pyenv/versions/3.6.6
Run Code Online (Sandbox Code Playgroud)
pyenv克隆并从github安装(我还没有在brew上安装pyenv)
.zshrc
# python
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
Run Code Online (Sandbox Code Playgroud)
感谢您的时间。
更新
我创建了python的符号链接,并且 python 工作了。
为什么没有pythons 符号链接?(我想知道安装是否失败,我运行安装和卸载很多次
创建符号链接
$ pwd
/Users/asari/.pyenv/versions/3.6.6/bin
$ ln -s python3 python
Run Code Online (Sandbox Code Playgroud)
工作,
$ pwd
/Users/asari/workspace/hoge
$ python -V
Python 3.6.6
Run Code Online (Sandbox Code Playgroud)
4lk*_*r43 37
添加到~/.bashrc
alias python="$(pyenv which python)"
alias pip="$(pyenv which pip)"
Run Code Online (Sandbox Code Playgroud)
zan*_*ngw 23
Mac 操作系统下10.15
我们将以下内容添加到.bashrc文件或.zshrc文件中
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
Run Code Online (Sandbox Code Playgroud)
arn*_*o_v 17
对我来说,我的文件中的配置.zshrc.local需要更新。使用有关为 Pyenv 配置 shell 环境页面的信息,我将 pyenv init 内容更改为:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
# Optionally (when you use pyenv virtualenv)
eval "$(pyenv virtualenv-init -)"
Run Code Online (Sandbox Code Playgroud)
在 MAC 操作系统上。我通过添加以下行来解决它~/.bash_profile
在终端呼叫vi ~/.bash_profile
在下面插入 2 行
alias python="$(pyenv which python)"
alias pip="$(pyenv which pip)"
Run Code Online (Sandbox Code Playgroud)
保存上述文件后调用此命令source ~/.bash_profile
添加以下 2 行到 ./zshrc 就是答案,因为你已经有了 eval "$(pyenv init -)"
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
Run Code Online (Sandbox Code Playgroud)
技巧是让垫片发挥其应有的作用。
在 MacOS Montery 12.5 上python,/usr/local/bin/. 一个快速解决方法是确保这是指向系统的默认引用python3。
ln -s python3 /usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)
就我而言,垫片已正确初始化:
$ which python
/home/me/.pyenv/shims/python
Run Code Online (Sandbox Code Playgroud)
然而,与理查德·多明戈的回答类似,我看到:
$ pyenv which python
pyenv: python: command not found
The `python' command exists in these Python versions:
3.8.13
Note: See 'pyenv help global' for tips on allowing both
python2 and python3 to be found.
Run Code Online (Sandbox Code Playgroud)
这里的问题是活动的 python 版本是system,并且我的系统python3没有python别名(符号链接)。
解决此问题的两个选项:
要么为系统创建一个python 符号链接python3,类似于cmcginty 的答案,例如:
ln -s python3 /usr/bin/python
Run Code Online (Sandbox Code Playgroud)
或者根据您的用例,使用例如pyenv shell、pyenv local或 显式将 python 版本设置为错误消息中列出的版本之一。文档pyenv global对此进行了解释,并在此处和此处进行了讨论。
在这种情况下
pyenv local 3.8.13
Run Code Online (Sandbox Code Playgroud)
.python-version谁应该在当前目录中创建/修改文件。
文档中的以下部分确实值得阅读:了解 Python 版本选择。
我解决了。
我在中使用了以下 grep 选项.zshrc
export GREP_OPTIONS = '- color = auto'
Run Code Online (Sandbox Code Playgroud)
看来,即使 ANSI 转义码包含在 中使用的 grep 的搜索结果中pyenv,它也没有被正确地用作字符串。
我想你们都知道,但GREP_OPTIONS已被弃用。
| 归档时间: |
|
| 查看次数: |
63559 次 |
| 最近记录: |