【问题标题】:How to migrate Python packages with command-line features from bash to zsh [duplicate]如何将具有命令行功能的 Python 包从 bash 迁移到 zsh [重复]
【发布时间】: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 listpip3 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 和库。

  1. 输入open ~/.bash_profile
  2. 输入open ~/.zshrc
  3. 将 Python 3 的 PATH 复制到 .zshrc 并添加以下行:export PATH=$PATH:~/.local/bin
  4. 保存文件
  5. 返回终端,输入source ~/.zshrc
  6. 重启终端就可以了

【问题讨论】:

  • 将 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


【解决方案1】:

zsh 有自己的(五个)启动文件。 详情请见http://zsh.sourceforge.net/Intro/intro_3.html

【讨论】:

  • 在创建 Python 包时我应该编写一些特定的命令以使它们也能在 zsh 上运行吗?
猜你喜欢
  • 2013-07-19
  • 2014-02-08
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 2011-05-11
  • 1970-01-01
  • 2014-10-26
相关资源
最近更新 更多