Installieren Sie Beautiful Soup zur Verwendung mit einer höheren Python-Version (als dem Standard-Mac OS).

Installieren Sie Beautiful Soup zur Verwendung mit einer höheren Python-Version (als dem Standard-Mac OS).

Ich habe gerade Python 2.7 auf meinem MacBook Pro (mit OS 10.13.6 High Sierra) neu installiert, da ich es versehentlich entfernt hatte, ohne zu wissen, dass es erforderlich war. Auf demselben Computer ist auch Python 3.6.8 geladen und ich arbeite mich durch „Automate the Boring Stuff“, das Beautiful Soup für Web Scraping erfordert. Das Problem ist, dass mein Terminal Python v2.7.15 anzeigt und irgendwo in dieser Bibliothek BS4 installiert, aber ich brauche es für Python v3.6.8. Ich habe die Setuptools auf die neueste Spezifikation aktualisiert mit:

python -m pip install --upgrade pip setuptools wheel

Wenn ich " python3" in die Befehlszeile eingebe, um zu v3.6.8 zu gelangen, erhalte ich:

Python 3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

Alles, was ich danach eingebe, führt entweder zu einem Syntaxfehler, oder wenn ich Folgendes eingebe:

python --version

es gibt zurück:

 Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'python' is not defined

Wenn ich versuche, das Verzeichnis in den Ordner „Downloads“ zu ändern, erhalte ich Folgendes:

>>> cd /Users/User/Downloads
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'cd' is not defined

Kann mir jemand sagen, wo das Problem mit der Befehlszeile liegt? Und wie führe ich jetzt das Pip-Installationsprogramm von der Befehlszeile aus aus, um das BS4-Paket in der Python3.6.8-Bibliothek zu installieren/umzuleiten?

Wahrscheinlich ist es ganz einfach, aber ich bin hier ein ziemlicher Neuling ...

Vielen Dank für Ihre Hilfe.

Antwort1

Wenn ich im Versuch, zu v3.6.8 zu gelangen, „python3“ in die Befehlszeile eingebe, erhalte ich:

Python 3.6.8 (v3.6.8:3c6b436a57, Dec 24 2018, 02:04:31) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

Alles, was ich danach eingebe, gibt mir entweder einen Syntaxfehler

Das liegt daran, dass die von Ihnen eingegebenen Befehle interpretiert werden vonPython, nicht Ihr Terminal. Um zu Ihrem normalen Terminal zurückzukehren, geben Sie ein quit().

Wie führe ich jetzt das Pip-Installationsprogramm über die Befehlszeile aus, um das BS4-Paket in die Python3.6.8-Bibliothek zu installieren bzw. dorthin zu leiten?

Es scheint, dass bei der Neuinstallation von Python 2.7 dessen Verzeichnisse zu IhremWEG Umgebungsvariablevor den Python 3-Verzeichnissen. Wenn Sie pythonIhr Terminal öffnen, wird nach einer ausführbaren Datei mit dem Namen pythonzuerst imaktuelles Arbeitsverzeichnisund dann durch alle Verzeichnisse in IhremWEG. Es führt die erste Übereinstimmung aus und beendet die Suche.

Ich empfehle Ihnen, IhreWEGDie Python 3-Verzeichnisse liegen also vor Ihren Python 2-Verzeichnissen. SieheBearbeiten der PATH-Variable auf dem Mac.

Ich verwende Windows und habe diese beiden Verzeichnisse in meinem PATH für Python 3:

C:\Users\Admin\AppData\Local\Programs\Python\Python37\
C:\Users\Admin\AppData\Local\Programs\Python\Python37\Scripts

Ich brauche beides, weil pythonsich die ausführbare Datei im ersten Verzeichnis und die pipausführbare Datei im zweiten befindet.

Alternativ können Sie in Ihrem Terminal das Verzeichnis ändern, in dem sich die pipausführbare Datei befindet: cd [...]\Python\Python37\Scripts.

Jetzt können Sie Beautiful Soup 4 für Python 3 installieren:pip install beautifulsoup4

Antwort2

Danke, Gordon.

Das liegt daran, dass die von Ihnen eingegebenen Befehle von Python und nicht von Ihrem Terminal interpretiert werden. Um zu Ihrem normalen Terminal zurückzukehren, geben Sie quit() ein.

Ja, das war offensichtlich ein Fehler meinerseits. Danke, dass Sie mich aufgeklärt haben.

Das Problem des Zurücksetzens des Pfads, um Python 3 gegenüber 2 zu priorisieren, erfordert ein wenig Recherche. Ich fand den verlinkten Beitrag ein wenig verwirrend, aber das bedeutet nur, dass ich mich ein wenig einlesen muss.

Was bei mir funktioniert hat, war einfach einzutippenpip3 install beautifulsoup4

Ich habe dies gefunden, als ich nach dem Dateipfad für Python 3.6 suchte und zufällig auf die Datei readme.txt stieß, die sich im Anwendungsordner dieser Version befindet. Und zwar:

Koexistenz von Python 3 und Python 2: Python.org Python 3.6 und 2.7.x können beide auf Ihrem System installiert werden und es kommt zu keinen Konflikten. Befehlsnamen für Python 3 enthalten eine 3, python3 (oder python3.6), idle3 (oder idle3.6), pip3 (oder pip3.6) usw. Befehlsnamen für Python 2.7 enthalten eine 2 oder keine Ziffer: python2 (oder python2.7 oder python), idle2 (oder idle2.7 oder idle) usw.

Da ist es also.

Aber danke für deine Hilfe. Du hast mich auf jeden Fall in die richtige Richtung geschickt.

verwandte Informationen