SIP löscht DYLD-Bibliotheken, die von SQLAnywhere17 hinzugefügt wurden. Brauchen Sie diese Bibliotheken in Kolben zu entwickeln

1

Ich entwickle in Python 3.6 und Flasche . Ich arbeite derzeit mit einer SQLAnywhere-Datenbank und habe das Python-Paket sqlanydb installiert. Ich habe auch den SQLAnywhere17-Treiber für Mac OSX installiert.

Bis Anfang dieser Woche entwickelte ich mich normal, bis ich mich entschied, meinen Mac von Yosemite auf High Sierra zu aktualisieren. Ich kannte SIP zu diesem Zeitpunkt nicht und habe daher möglicherweise eine vorzeitige Entscheidung für ein Upgrade getroffen.

Seit dem Upgrade konnte ich nicht mehr wie gewohnt entwickeln, da beim Beschaffen der SQLAnywhere17-Dateien ein Pfad zum DYLD_LIBRARY_PATH hinzugefügt wird. Allerdings, wenn ich meine Kolbenanwendung auf dem Entwicklungsserver von flask mit starte

export FLASK_APP=modules
export FLASK_DEBUG=1
flask run

Es löscht alle SQLAnywhere 17-Dyld-Dateien, die meiner Umgebung hinzugefügt wurden could not load dbcapi Error.

Ich suche nach einer Lösung, bei der ich SIP nicht deaktivieren muss, weil mir klar ist, dass der Zweck des Schutzes wichtig ist. Ich möchte es nur für die Ausführung meiner Kolbenanwendung deaktivieren können.

Meine Python 3.6-Dateien und Site-Pakete befinden sich in /usr/local. Davon Artikel Ich habe gelernt, dass ich sehen kann, mit welchen Dateien SIP geschützt ist ls -alO. Allerdings, wenn ich diesen Befehl auf ausführen /usr/local und alle darin enthaltenen Verzeichnisse, und es scheint, dass keine der Dateien geschützt sind. Das /usr/local Verzeichnis selbst hat sunlink bei dem die protected wäre auf SIP geschützte Dateien. Ich bin mir nicht sicher, was das bedeutet.

Michael
quelle
1
Woher weißt du, dass SIP schuld ist? Sie sollten versuchen, es zumindest vorübergehend als Test zu deaktivieren. / usr / local ist in der Tat ausdrücklich von SIP ausgeschlossen.
Wowfunhappy
Ja, guter Punkt. Lassen Sie mich das versuchen und auf Sie zurückkommen.
Michael
Entschuldigung für die späte Antwort. Ich habe gerade SIP deaktiviert und meine Kolbenanwendung mit der oben beschriebenen Methode ausgeführt. Ich bin nicht auf den Fehler gestoßen, und meine Flaschen-App konnte problemlos ausgeführt werden. Aus diesem Grund scheint SIP diesen Fehler zu verursachen. Dann frage ich mich, ob der Standard-Entwicklungsserver von Flask Binärdateien verwendet, die sich nicht in befinden /usr/local.
Michael
Scheint so! Flask ist mir eigentlich nicht vertraut, daher kann ich keine tatsächliche Antwort geben. Sie könnten versuchen, nur den Teil von SIP zu deaktivieren, den Sie benötigen (experimentieren Sie, um zu sehen, was funktioniert): forums.developer.apple.com/thread/17452
Wowfunhappy