【发布时间】:2020-07-09 15:34:53
【问题描述】:
我有几个安装了 pip 的软件包,它们应该/已经能够从命令行运行。例如,pipreqs 以及我创建的本地包都已经并且应该分别从命令行运行。
但是,一旦我升级到 MacOS Catalina,终端就从 bash 更改为 zsh。现在,命令行中没有可用的 Python 命令。我相信这可能是由bash_profile 引起的,但它似乎配置正确。
升级时是否有任何设置必须修改或添加到bash_profile 的路径?我发现这些命令在输入bash -login 并在终端的 bash 中运行它们时都可以工作,但在 zsh 中却不行。
~/.bash_profile的内容:
export VARENV="kt2LrUtW8UVwMO3axMa8l4byPbs"
# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH
# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH
# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH
# Setting PATH for Python 3.8
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH
# support python packages
export PATH=$PATH:~/.local/bin
# support pipreqs
export PATH=${PATH}:/usr/local/bin/pipreqs/pipreqs.py
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
export PATH="$HOME/.cargo/bin:$PATH"
尝试运行 pipreqs(或其他命令行模块):
~ pipreqs -h
zsh: command not found: pipreqs
Python 版本:3.8
pipreqs 在运行 python3 -m pip list 时发现(因为 pip list 和 pip3 list 仅在 Python 2 中出现)。
编辑:运行以下命令会得到以下结果
echo "$PATH" | tr : '\n'
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/go/bin
/usr/local/munki
/opt/X11/bin
正在尝试重新安装pipreqs:
Installing collected packages: pipreqs
WARNING: The script pipreqs is installed in '/Library/Frameworks/Python.framework/Versions/3.8/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pipreqs-0.4.10 –
解决方案:
.zshrc 的内容与.bash_profile 不同。您需要迁移它们以支持 Python 和库。
- 输入
open ~/.bash_profile - 输入
open ~/.zshrc - 将 Python 3 的 PATH 复制到
.zshrc并添加以下行:export PATH=$PATH:~/.local/bin - 保存文件
- 返回终端,输入
source ~/.zshrc - 重启终端就可以了
【问题讨论】:
-
将 Mojave 盒子升级到 Catalina 不会自动将您迁移到 zsh。你究竟做了什么来切换shell?你的 Bash 配置中有什么?
pipreqs安装在哪里,该目录是如何添加到 Bash 中的PATH的? -
echo "$PATH" | tr : '\n'以一种对人类友好的格式显示您的PATH的目录。 -
pip3 list应该专门运行pip的 Python 3 版本,从而列出您的 Python 3 包。 -
> 将 Mojave 盒子升级到 Catalina 不会自动将您迁移到 zsh。当我升级时,它说我的默认 shell 现在是 zsh。上面可以看到bash的配置,我这里加了。
pip3 -V产生 Python 2 版本的 pip,所以我不愿意使用它。 @tripleee -
运行
echo "$PATH" | tr : '\n'产生: /usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/go/bin /usr/local/munki /opt/X11 /bin
标签: python python-3.x zsh