Mac系统已安装jedi-language-server但命令行无法找到的问题与解决
问题:Mac Ventura系统中jedi-language-server命令找不到但包已安装
按照文档安装jedi-language-server后,在Mac 13 Ventura系统执行jedi-language-server --help时提示命令未找到,但通过pip3 list可以确认包已安装:
➜ ~ pip3 list | grep jedi jedi 0.18.2 jedi-language-server 0.40.0
PATH及环境信息
设备为新机器,未使用conda或其他虚拟环境:
➜ ~ echo $PATH /Users/vzgoll/bin:/usr/local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin ➜ ~ which jedi-language-server jedi-language-server not found ➜ ~ python3 -m site sys.path = [ '/Users/vzgoll', '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python39.zip', '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9', '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/lib-dynload', '/Users/vzgoll/Library/Python/3.9/lib/python/site-packages', '/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/site-packages', ] USER_BASE: '/Users/vzgoll/Library/Python/3.9' (exists) USER_SITE: '/Users/vzgoll/Library/Python/3.9/lib/python/site-packages' (exists) ENABLE_USER_SITE: True
在Arch Linux中安装后可正常执行jedi-language-server --help,因此需要排查Mac系统下的问题原因及解决方法。
原因分析
pip以用户身份安装包时,会将可执行文件放在USER_BASE/bin目录下(此处为/Users/vzgoll/Library/Python/3.9/bin),但该目录未被添加到系统PATH中,导致终端无法找到jedi-language-server命令。
解决方案
在~/.zshrc文件中添加以下代码:
pythonUserBaseDir=$(python3 -m site --user-base); pythonUserBaseBinDir="$pythonUserBaseDir/bin" export PATH="$pythonUserBaseBinDir:$PATH" unset pythonUserBaseDir; unset pythonUserBaseBinDir;
添加完成后,执行source ~/.zshrc使配置生效,之后即可正常使用jedi-language-server命令。
内容的提问来源于stack exchange,提问作者ssayno
相关产品推荐
相关产品推荐

