柯南:找不到命令

Nik*_*ako -2 path python shell-script command

我正在使用 RPI 3B

uname -a 返回: 4.14.98-v7+ #1200 armv71

操作系统是 stretch

gcc version is 4.9.3

我正在尝试根据 hackster.io 上的这个项目将我的 RPi 设置为 BLE 网关。我执行了前几个命令:

git clone --recurse-submodules https://github.com/Wolkabout/WolkGateway.git

sudo apt-get install mosquitto cmake python python-pip && python -m pip install conan

Bash 脚本

然后我运行了一个包含以下内容的 bash 脚本 (configure.sh):

!/usr/bin/env bash

cp tools/git/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

pushd out
conan install -s compiler.libcxx=libstdc++11 --build=missing ..
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..
popd
Run Code Online (Sandbox Code Playgroud)

Bash 脚本的输出

终端输出:

line 21: conan: command not found
Run Code Online (Sandbox Code Playgroud)

第 21 行是conan.

然后我收到一个 CMake 错误:

CMakeLists.txt:(20) (include):
include could not find load file:
/home/pi/Wolk...conanbuildinfo.cmake
Run Code Online (Sandbox Code Playgroud)

也许柯南不在我的 PATH

我的想法是命令conan不在我的里面,$PATH所以我检查了PIP

pip show conan
Run Code Online (Sandbox Code Playgroud)

这给了我以下位置conan

/home/pi/.local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

然后我将该路径添加到我的$PATH

export PATH=$PATH:/home/pi/.local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

这不起作用,在重新运行上述 bash 脚本 (configure.sh) 时导致相同的错误

从源安装柯南

我去了这里conan从源代码安装:

 git clone https://github.com/conan-io/conan.git
 cd conan
 pip install -r conans/requirements.txt
Run Code Online (Sandbox Code Playgroud)

将柯南添加到我的 Python 脚本 PATH

#!/usr/bin/env python

import sys

conan_repo_path = "/home/pi/conan" 
Run Code Online (Sandbox Code Playgroud)

CONAN 存储库文件夹的绝对路径

sys.path.append(conan_repo_path)
from conans.client.command import main
main(sys.argv[1:])    
Run Code Online (Sandbox Code Playgroud)

这奏效了。它向我展示了conan commands help输出。

当我执行 configure.sh(bash 脚本)时,这个 python 脚本有什么不同?

Rob*_*nny 5

在 ubuntu 18.04 上,安装软件后执行 pip3 install --user conanpip install --user conan

未将二进制文件正确链接到您的路径中。您可以设置路径通常是因为 --user 将它安装到~/.local/(基于每个用户),因为使用 sudo 全局安装会破坏事情。

一种快速选择是仅通过执行来创建符号链接 sudo ln -s ~/.local/bin/conan /usr/bin/conan

这是一个小的解决方法,但是您也可以~/.local/bin这样添加: export PATH=$PATH:/home/<user>/.local/bin

您还可以从这里执行任何已安装的二进制文件。