Установка s3cmd на MacOS High Sierra с помощью pip

414
crmpicco

Я установил s3cmdс pipна MacOS High Sierra, который успешно установлен.

sudo pip install --user s3cmd The directory '/Users/crmpicco/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/Users/crmpicco/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting s3cmd Downloading https://files.pythonhosted.org/packages/c0/55/ff0ba1d725d3b43c1b116907b4891da0a3b3193e7fa23f75d9fff7a6431e/s3cmd-2.0.1.tar.gz (121kB) 100% |████████████████████████████████| 122kB 85kB/s  Requirement already satisfied: python-dateutil in /Library/Python/2.7/site-packages (from s3cmd) (2.6.1) Requirement already satisfied: python-magic in /Library/Python/2.7/site-packages (from s3cmd) (0.4.15) Requirement already satisfied: six>=1.5 in /Library/Python/2.7/site-packages (from python-dateutil->s3cmd) (1.11.0) Installing collected packages: s3cmd Running setup.py install for s3cmd ... done Successfully installed s3cmd-2.0.1 

Однако я не могу его запустить.

s3cmd --configure -bash: s3cmd: command not found 

Если я делаю поиск, он отображается в /Homebrewкаталоге:

locate s3cmd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/s3cmd.rb 

Чего мне не хватает, чтобы запустить это?

1

1 ответ на вопрос

1
hoefling
  1. Не делать sudo pip install --user. Это повреждает вашу директорию пользователя - вы устанавливаете как root для вашей директории пользователя, это источник потенциальных проблем. Переустановите с

    $ sudo pip uninstall -y s3cmd $ pip install s3cmd --user 

    1.1. Поскольку вы уже установили его как root, вполне вероятно, что pipкаталог или файлы кэша были выбраны для root - в случае каких-либо жалоб, исправьте владельца с помощью

    $ sudo chown -R crmpicco:staff /Users/crmpicco/ 

    Попробуйте запустить s3cmd -hили s3cmd --versionсейчас, если это работает, вы уже сделали. Если нет, продолжайте читать.

  2. Теперь, когда вы правильно установили пакет, список установленных файлов:

    $ pip show -f s3cmd 

    Найдите путь к сценарию, он будет похож на что-либо ../../bin/s3cmd, данное относительно Locationкаталога. Вам нужно построить полный binпуть, он должен быть чем-то вроде /Users/crmpicco/Library/Python/X.X/bin.

  3. Добавьте созданный binпуть к PATHи попробуйте вызвать команду:

    $ PATH=$PATH:/full/path/to/bin s3cmd --version 
  4. Если приведенная выше команда выполнена успешно, добавьте binпуть к PATHокончательно: откройте ~/.bash_profileи добавьте строки

    PATH="/full/path/to/bin:$" export PATH 

    Сохраните файл и либо перезапустите терминал, либо запустите, source ~/.bash_profileчтобы применить изменения. Теперь вы сможете звонить в s3cmdлюбое время.

Это здорово, спасибо. У меня все хорошо до четвертого номера. У меня уже есть переменная окружения `PATH`, такая как` export PATH = "/ usr / local / sbin: $ PATH" `. Как мне добавить полный путь к бинам Python к существующей переменной `PATH`, так как я не хочу загромождать существующую переменную? crmpicco 5 лет назад 0
Вы не будете заглатывать это, если добавите строки из ответа. `/ usr / local / sbin` по-прежнему будет в` PATH`, вы можете проверить это в любое время: введите `echo $ PATH` в терминале, чтобы напечатать переменную. Конечно, вы можете объединить две строки в одну `export PATH =" / python / bin: / usr / local / sbin: $ "`, но в итоге это будет иметь тот же эффект. hoefling 5 лет назад 1
Отлично, спасибо за вашу помощь @hoefling. Ваш ответ был хорошо объяснен. В итоге я добавил `/ Users / crmpicco / Library / Python / 2.7 / bin` в` / etc / paths`. crmpicco 5 лет назад 1

Похожие вопросы