Каждый раз, когда я открываю Терминал, я получаю сообщение «no command 'pew' found» (Ubuntu 16.04) - PullRequest
0 голосов
/ 19 февраля 2020

В настоящее время я использую 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 .

То, что я сделал,

  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 и не вижу никаких связанных с pew файлов.

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

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Как указывает другой ответ , причина проблемы заключается в следующем:

установленный пиу (cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew

Здесь вы установили pew, когда находились внутри virtualenv.

Как уже упоминалось в моем комментарии , при установке pew устанавливается двоичный файл в одну из стандартных 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' не найдена ".

Теперь вернемся к тому, что вы сделали, потому что вы установили 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

.. и этот путь к каталогу виртуальной среды не является частью стандартные пути указаны в PATH. Вы можете добавить строку echo $PATH в свои .bashrc перед строками pew, чтобы напечатать все пути.

Так что же делать? Вот возможные решения:

  1. Установка pew вне виртуальной среды

    • ИМХО, это самое простое.
    • Из документов pew можно быть оболочкой для виртуальной среды Python. Таким образом, вы используете его для активации и работы в виртуальной среде. Вам не нужно вручную virtualenv activate использовать cvpr_env. Проверьте общий рабочий процесс на использование.
    • Из инструкций canconvs говорится, что pew используется в качестве виртуальной среды.
  2. Если у вас уже есть собственная виртуальная среда, тогда нет необходимости устанавливать и использовать pew. Но если вы действительно хотите иметь pew внутри виртуальной среды (не знаете, как это будет работать), вы можете сделать одно из следующих действий:

    • Добавить переменная окружения /path/to/venv/bin/pew в PATH. В .bashrc добавьте эти перед строками, которые вызывают pew (используйте which pew внутри вашего виртуального окружения, чтобы получить правильный путь)
      export PATH="$PATH:/path/to/your/venv/bin/pew"
      
    • Укажите полный путь к pew в .bashrc
      /path/to/your/venv/bin/pew ...
      
1 голос
/ 19 февраля 2020

Мне кажется, что вы сделали здесь, вы установили pew в виртуальной среде (cvpr_env), а не в вашей хост-системе. Когда вы открываете новый терминал, он запускается и выполняет команды в вашем ~/.profile, поэтому я предполагаю, что pew возможно отредактировал этот файл? Есть ли там что-нибудь, что pew связано?

...