每次打开终端时,都会收到“找不到命令'pew'”信息(Ubuntu 16.04)

时间:2020-02-19 04:56:00

标签: python ubuntu terminal virtualenv ubuntu-16.04

我当前正在使用Ubuntu 16.04 LTS。

问题是当我打开终端时,我收到此消息。

No command 'pew' found, did you mean:
 Command 'pyew' from package 'pyew' (universe)
 Command 'new' from package 'nmh' (universe)
 Command 'pen' from package 'pen' (universe)
 Command 'pex' from package 'pex' (universe)
 Command 'pmw' from package 'pmw' (universe)
 Command 'peg' from package 'peg' (universe)
 Command 'paw' from package 'paw-common' (universe)
 Command 'spew' from package 'spew' (universe)
 Command 'pev' from package 'pev' (universe)
 Command 'pee' from package 'moreutils' (universe)
 Command 'psw' from package 'wise' (universe)
pew: command not found
bash: : No such file or directory
ubuntu@ubuntupc:~$ 

当我尝试安装并运行此CVPR project时收到此消息。

我所做的是

  1. 创建了一个虚拟环境ubuntu@ubuntupc:~/Downloads/camconvs-master$ virtualenv -p /usr/bin/python3.5 cvpr_env
  2. 激活的虚拟环境ubuntu@ubuntupc:~/Downloads/camconvs-master$ source cvpr_env/bin/activate
  3. 已安装的项目要求(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install -r requirements.txt
  4. 已安装cmake-setuptools (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install cmake-setuptools
  5. 已安装的皮尤(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew
  6. 这些(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ cd lmbspecialops
  7. (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ python setup.py install
  8. (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ pew add python
  9. (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ cd ..
  10. (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ export LMBSPECIALOPS_LIB="/path/to/camconvs/lmbspecialops/build/lib.linux-x86_64-3.5/lmbspecialops.so"
  11. (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pew add python/

完成这些操作后,每次打开新终端并重新引导系统时,均会显示该消息。

我是Ubuntu的新手,我不知道我对系统做了什么。问题是,如何停止显示这些消息?

更新2

我的〜/个人资料是这个吗?抱歉,我不确定。

ubuntu@ubuntupc:/etc$ sudo cat profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

我还检查了profile.d文件夹,但看不到任何与座位相关的文件。

ubuntu@ubuntupc:/etc$ ls profile.d
appmenu-qt5.sh    bash_completion.sh     vte-2.91.sh
apps-bin-path.sh  cedilla-portuguese.sh

2 个答案:

答案 0 :(得分:1)

在我看来,您所做的是在虚拟环境(pew)中而不是在主机系统上安装了cvpr_env。当您打开一个新终端时,它将运行并执行~/.profile中的命令,所以我猜测pew可能编辑了该文件吗?那里有pew相关的东西吗?

答案 1 :(得分:1)

other answer指出,问题的原因是:

  1. 已安装的皮尤(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew

您在pew内时安装了virtualenv

my comment中所述,安装pew会将二进制文件安装在 standard bin文件夹之一下,该文件夹通常为/usr/local/bin/或{ {1}}或/home/<username>/.local/bin,具体取决于您的Python / /usr/bin安装权限。

pip

注意,我说的是 standard 文件夹,因为在Ubuntu上,这些文件夹路径默认情况下包含在gino:~$ python3 -m pip install --user pew Requirement already satisfied: pew in ./.local/lib/python3.6/site-packages (1.2.0) Requirement already satisfied: virtualenv>=1.11 in /usr/local/lib/python3.6/dist-packages (from pew) (16.6.0) Requirement already satisfied: setuptools>=17.1 in /usr/lib/python3/dist-packages (from pew) (39.0.1) Requirement already satisfied: virtualenv-clone>=0.2.5 in /usr/local/lib/python3.6/dist-packages (from pew) (0.5.3) gino:~$ which pew /home/gino/.local/bin/pew 环境变量中。尝试使用PATH。这是系统找到可执行文件的所有路径的列表。这样,当我仅输入echo $PATH(没有完整路径)时,系统就会知道在哪里可以找到它。如果不能,则抛出该错误,您将得到:“ 未找到命令'pew'”。

现在,返回到所做的操作,因为在虚拟环境pew中安装了pew,因此(cvpr_env)将被安装在该虚拟环境的pew文件夹中:

bin

..并且虚拟环境目录的路径不是gino:~$ upvenv cvpr_env (cvpr_env) gino:~$ pip install pew ... Successfully installed appdirs-1.4.3 distlib-0.3.0 filelock-3.0.12 importlib-metadata-1.5.0 pew-1.2.0 six-1.14.0 virtualenv-20.0.5 virtualenv-clone-0.5.3 zipp-3.0.0 (cvpr_env) gino:~$ which pew /home/gino/.venvs/cvpr_env/bin/pew 中列出的 standard 路径的一部分。您可以在PATH行之前的echo $PATH中添加.bashrc行,以打印所有路径。

那该怎么办? 以下是可能的解决方案:

  1. 在虚拟环境外部安装pew

    • 恕我直言,这是最简单的。
    • 根据pew文档,应该用作Python虚拟环境的包装。因此,您可以使用它来激活虚拟环境并在其中工作。您无需手动执行pew即可使用virtualenv activate。检查common workflow的用法。
    • 根据canconvs的说明,它说使用cvpr_env作为您的虚拟环境。
  2. 如果您已经拥有自己的虚拟环境,则无需安装和使用pew。但是,如果您真的想要在虚拟环境中使用pew(不确定如何运行),则可以执行以下操作之一:

    • pew添加到您的/path/to/venv/bin/pew环境变量中。在PATH中,在调用.bashrc的行之前添加这些(在虚拟环境中使用pew以获得正确的路径)
      which pew
    • export PATH="$PATH:/path/to/your/venv/bin/pew" 中指定pew的完整路径
      .bashrc