每次打开终端时都会看到“找不到命令‘pew’”(Ubuntu 16.04)

2024-09-27 17:39:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用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. made a virtual environment ubuntu@ubuntupc:~/Downloads/camconvs-master$ virtualenv -p /usr/bin/python3.5 cvpr_env
  2. activated virtual environment ubuntu@ubuntupc:~/Downloads/camconvs-master$ source cvpr_env/bin/activate
  3. installed project requirements (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install -r requirements.txt
  4. installed cmake-setuptools (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install cmake-setuptools
  5. installed pew (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew
  6. did these (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

Tags: frommasterenvpackageubuntudownloadsshetc
2条回答

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

  1. installed pew (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew

在这里,您在virtualenv内安装了pew

my comment中所述,安装pew会在一个标准{}文件夹下安装二进制文件,该文件夹通常是/usr/local/bin//home/<username>/.local/bin/usr/bin,具体取决于您的Python/pip安装权限

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

请注意,我说的是标准文件夹,因为在Ubuntu上,默认情况下,这些文件夹路径包含在PATH环境变量中。用echo $PATH试试看。这是系统查找可执行文件的所有路径的列表。因此,当我只输入pew(没有完整路径)时,系统知道在哪里可以找到它。如果不能,它会抛出您得到的错误:“没有找到命令‘pew’

现在,回到您所做的,因为您在虚拟环境(cvpr_env)中安装了pew,所以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

。。虚拟环境目录的路径不是PATH中列出的标准路径的一部分。您可以在pew行之前的.bashrc行中添加echo $PATH行以打印所有路径

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

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

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

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

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

相关问题 更多 >

    热门问题