Arch Linux下通过pip安装Conan后bash无法识别命令的非AUR解决方案咨询
在Arch Linux中无需AUR,正常使用pip安装的Conan(及其他pip包)
我明白你的困扰——跟着官方指南用pip装了Conan,结果bash找不到命令,不想用AUR又不想每次敲完整路径,还担心Python更新后PATH要跟着改。咱们一步步来解决这个问题:
问题根源
Arch Linux默认没有把用户级二进制目录~/.local/bin加入PATH环境变量。而当你以普通用户身份(不加sudo)执行pip install conan时,pip会把Conan的可执行文件安装到~/.local/bin目录下,这就导致bash找不到这个命令了。
其他发行版(比如Ubuntu)默认会把~/.local/bin加入PATH,所以Conan官方文档没特意说明Arch的特殊情况——这不是Conan的问题,是不同发行版PATH配置的差异。
解决方案
1. 先验证可执行文件位置
先确认Conan确实安装到了~/.local/bin:
ls ~/.local/bin/conan
如果输出显示conan文件,那说明就是PATH的问题。
2. 临时修复(当前终端会话有效)
直接把~/.local/bin加入当前会话的PATH:
export PATH="$HOME/.local/bin:$PATH"
现在试试执行conan --version,应该能正常输出版本信息了。
3. 永久修复(所有终端会话生效)
把路径添加到你的shell配置文件里,这样每次登录都会自动加载:
- 如果你用的是bash,编辑
~/.bashrc文件,在末尾添加一行:export PATH="$HOME/.local/bin:$PATH" - 如果是zsh,编辑
~/.zshrc文件,同样添加上面那行。
保存文件后,执行以下命令让修改立即生效:
# bash用户 source ~/.bashrc # zsh用户 source ~/.zshrc
额外提示
- 不要用
sudo pip install:用sudo安装会把包放到系统级目录,容易搞乱Arch的系统Python环境,后续升级Python也可能出问题。坚持用普通用户身份执行pip install,所有包都会放在~/.local下,独立于系统环境,也不用每次改PATH。 - 这个方法适用于所有pip安装的用户级工具,不止Conan——以后用pip装其他命令行工具(比如
black、flake8)都能直接用命令调用,不用再担心路径问题。
内容的提问来源于stack exchange,提问作者asdru




