S3cmd auf MacOS High Sierra mit Pip installieren

499
crmpicco

Ich habe s3cmdmit pipMacOS High Sierra installiert, das erfolgreich installiert wurde.

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 

Ich kann es jedoch nicht ausführen.

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

Wenn ich danach suche, wird es im /HomebrewVerzeichnis angezeigt:

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

Was fehlt mir, um das auszuführen?

1

1 Antwort auf die Frage

1
hoefling
  1. Sie nicht tun sudo pip install --user. Dies beschädigt Ihr Benutzerverzeichnis - Sie installieren als root Ihr Benutzerverzeichnis. Dies ist eine Quelle für mögliche Probleme. Mit neu installieren

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

    1.1. Da Sie bereits als root installiert haben, ist es wahrscheinlich, dass pipdie Cache-Verzeichnisse oder -Dateien von root als root bezeichnet wurden. Sollten Sie diesbezüglich Beschwerden haben, korrigieren Sie den Besitz

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

    Laufen Sie s3cmd -hoder versuchen Sie es s3cmd --versionjetzt, wenn es funktioniert, sind Sie bereits fertig. Wenn nicht, lesen Sie weiter.

  2. Nachdem Sie das Paket ordnungsgemäß installiert haben, listen Sie die installierten Dateien auf:

    $ pip show -f s3cmd 

    Finden Sie den Pfad zum Skript, der sich ../../bin/s3cmdrelativ zum Verzeichnis befindet Location. Sie müssen den vollständigen binPfad konstruieren, es sollte ähnlich sein /Users/crmpicco/Library/Python/X.X/bin.

  3. Hängen Sie den erstellten binPfad an PATHund versuchen Sie, den Befehl aufzurufen:

    $ PATH=$PATH:/full/path/to/bin s3cmd --version 
  4. Wenn der obige Befehl erfolgreich ist, hängen Sie den binPfad PATHdauerhaft an: Öffnen ~/.bash_profileSie die Zeilen und fügen Sie sie hinzu

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

    Speichern Sie die Datei und starten Sie entweder das Terminal neu oder führen Sie source ~/.bash_profiledie Änderungen aus. Jetzt sollten Sie s3cmdjederzeit anrufen können .

Das ist großartig, danke. Bis Nummer 4 bin ich gut. Ich habe bereits eine Umgebungsvariable `PATH` wie folgt gesetzt: export PATH =" / usr / local / sbin: $ PATH "`. Wie füge ich den vollständigen Python-Bin-Pfad der vorhandenen PATH-Variablen hinzu, da ich die vorhandene Variable nicht überladen möchte? crmpicco vor 6 Jahren 0
Sie werden nicht verstümmelt, wenn Sie die Zeilen aus der Antwort hinzufügen. `/ usr / local / sbin` befindet sich weiterhin in` PATH`. Sie können dies jederzeit überprüfen: Geben Sie im Terminal `echo $ PATH` ein, um die Variable zu drucken. Sie können natürlich zwei Zeilen zu einer `export PATH =" / python / bin: / usr / local / sbin: $ "` `kombinieren, aber am Ende hat dies den gleichen Effekt. hoefling vor 6 Jahren 1
Toll, danke für deine Hilfe @hoefling. Ihre Antwort wurde gut erklärt. Am Ende habe ich `/ Users / crmpicco / Library / Python / 2.7 / bin` zu` / etc / paths 'hinzugefügt. crmpicco vor 6 Jahren 1