Я только что установил pipsi . Я работаю на Mac OS X Yosemite и использую iTerm и запускаю zsh через oh-my-zsh .

Моя проблема в том, что я получаю следующее:

~ >>> pipsi
zsh: command not found: pipsi


~ >>> which pipsi
pipsi not found


~ >>> echo $PATH
~/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin


~ >>> cd ~/.local/bin


~/.local/bin >>> ls -al
total 8
drwxr-xr-x  3 jon  staff  102 Feb 23 19:25 .
drwxr-xr-x  5 jon  staff  170 Feb 23 19:25 ..
lrwxr-xr-x  1 jon  staff   39 Feb 23 19:25 pipsi -> /Users/me/.local/venvs/pipsi/bin/pipsi


~/.local/bin >>> cat pipsi
#!/Users/jon/.local/venvs/pipsi/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pipsi import cli

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(cli())


~/.local/bin >>> pipsi
pipsi not found

Я не могу понять, почему система просто не смотрит прямо в каталог ~/.local/bin и видит исполняемый файл pipsi и запускает его. Почему он сообщает, что pipsi not found?

1 ответ1

3

Согласно информации, представленной в вашем вопросе, ваша $PATH установлена следующим образом:

~ >>> echo $PATH
~/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Не совсем уверен, где вы устанавливаете $PATH но я считаю, что использование ~/ не будет работать в контексте переменной $PATH ; Я не верю, что ~/ правильно расширится до /Users/jon/ . Поэтому я бы порекомендовал настроить это:

~/.local/bin

Поэтому он явно указывает на ваш домашний каталог:

/Users/jon/.local/bin

Еще одна замечательная идея / предложение, основанное на комментарии Гордона Дэвиссона, заключается в том, что каким-то образом вы устанавливаете ~/.local/bin с двойными кавычками вокруг него. Что-то вроде этого:

PATH="~/.local/bin:$PATH"

Это ~/ помещенное в двойные кавычки никогда не будет расширено до полного домашнего пути в этом контексте. Поэтому вместо этого попробуйте поместить его вне кавычек, например так:

PATH=~/.local/bin:"$PATH"

Или даже сделать что-то другое и просто использовать переменную $HOME в двойных кавычках, например:

PATH="$HOME/.local/bin:$PATH"

Опять же, все это основано на том, как ваши фактические $PATH обрабатываются в конфигурации оболочки вашего пользователя. Так что настройте и настройте в зависимости от ваших конкретных потребностей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .