每次打开终端时得到 "No command 'pew' found" (Ubuntu 16.04)
Getting "No command 'pew' found" every time I open the Terminal (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。
我做的是
- made a virtual environment
ubuntu@ubuntupc:~/Downloads/camconvs-master$ virtualenv -p /usr/bin/python3.5 cvpr_env
- activated virtual environment
ubuntu@ubuntupc:~/Downloads/camconvs-master$ source cvpr_env/bin/activate
- installed project requirements
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install -r
requirements.txt
- installed cmake-setuptools
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install
cmake-setuptools
- installed pew
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew
- did these
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ cd lmbspecialops
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ python setup.py install
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ pew add python
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ cd ..
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ export LMBSPECIALOPS_LIB="/path/to/camconvs/lmbspecialops/build/lib.linux-x86_64-3.5/lmbspecialops.so"
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pew add python/
执行这些操作后,每次打开新终端并重新启动系统时都会显示该消息并没有解决此问题。
我是 Ubuntu 的新手,我不知道我对系统做了什么。问题是,如何停止显示这些消息?
更新 2
我的~/profile是这个?抱歉,我不确定。
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 文件夹,但我看不到任何与 pew 相关的东西。
ubuntu@ubuntupc:/etc$ ls profile.d
appmenu-qt5.sh bash_completion.sh vte-2.91.sh
apps-bin-path.sh cedilla-portuguese.sh
在我看来,您在这里所做的是在您的虚拟环境 (cvpr_env
) 中而不是在您的主机系统中安装 pew
。当您打开一个新终端时,它会运行并执行您 ~/.profile
中的命令,所以我猜 pew
可能编辑了该文件?里面有什么与 pew
相关的吗?
正如所指出的,问题的原因是这样的:
- installed pew
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew
您在 virtualenv
中安装了 pew
。
如 中所述,安装 pew
会在 standard bin
文件夹之一下安装一个二进制文件,通常是 /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
行以打印所有路径。
那怎么办?
以下是可能的解决方案:
安装pew
在虚拟环境之外
- 恕我直言,这是最简单的。
- 来自pew docs, it is supposed to be a wrapper for the Python virtual environment. So you use it to activate and work inside a virtual env. You don't need to manually do
virtualenv activate
to use cvpr_env
. Check the common workflow的用法。
- 根据 canconvs 说明,它说使用
pew
作为您的虚拟环境。
如果您已经拥有自己的虚拟环境,则无需安装和使用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 ...
我目前正在使用 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。
我做的是
- made a virtual environment
ubuntu@ubuntupc:~/Downloads/camconvs-master$ virtualenv -p /usr/bin/python3.5 cvpr_env
- activated virtual environment
ubuntu@ubuntupc:~/Downloads/camconvs-master$ source cvpr_env/bin/activate
- installed project requirements
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install -r requirements.txt
- installed cmake-setuptools
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install cmake-setuptools
- installed pew
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew
- did these
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ cd lmbspecialops
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ python setup.py install
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ pew add python
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master/lmbspecialops$ cd ..
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ export LMBSPECIALOPS_LIB="/path/to/camconvs/lmbspecialops/build/lib.linux-x86_64-3.5/lmbspecialops.so"
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pew add python/
执行这些操作后,每次打开新终端并重新启动系统时都会显示该消息并没有解决此问题。
我是 Ubuntu 的新手,我不知道我对系统做了什么。问题是,如何停止显示这些消息?
更新 2
我的~/profile是这个?抱歉,我不确定。
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 文件夹,但我看不到任何与 pew 相关的东西。
ubuntu@ubuntupc:/etc$ ls profile.d
appmenu-qt5.sh bash_completion.sh vte-2.91.sh
apps-bin-path.sh cedilla-portuguese.sh
在我看来,您在这里所做的是在您的虚拟环境 (cvpr_env
) 中而不是在您的主机系统中安装 pew
。当您打开一个新终端时,它会运行并执行您 ~/.profile
中的命令,所以我猜 pew
可能编辑了该文件?里面有什么与 pew
相关的吗?
正如
- installed pew
(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew
您在 virtualenv
中安装了 pew
。
如 pew
会在 standard bin
文件夹之一下安装一个二进制文件,通常是 /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
行以打印所有路径。
那怎么办? 以下是可能的解决方案:
安装
pew
在虚拟环境之外- 恕我直言,这是最简单的。
- 来自pew docs, it is supposed to be a wrapper for the Python virtual environment. So you use it to activate and work inside a virtual env. You don't need to manually do
virtualenv activate
to usecvpr_env
. Check the common workflow的用法。 - 根据 canconvs 说明,它说使用
pew
作为您的虚拟环境。
如果您已经拥有自己的虚拟环境,则无需安装和使用
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 ...
- 将