Mehr

Bereinigen duplizierter Python-Add-In-Schaltflächen in ArcMap

Bereinigen duplizierter Python-Add-In-Schaltflächen in ArcMap


Ich habe eine umfangreiche Symbolleiste mit ~30 Schaltflächen, Werkzeugen, Kombinationsfeldern usw. entwickelt, die mit dem Python-Add-In-Assistenten und ArcGIS 10.2.2 erstellt wurden.

Etwas an meinem Entwicklungsprozess führt dazu, dass die Schaltflächen, Werkzeuge und Kombinationsfelder auf meiner Symbolleiste dupliziert werden. Einige erscheinen jetzt jedes Mal, wenn ich das Add-In neu lade, bis zu sechs Mal. Ich kann "customize" verwenden, um die duplizierten Schaltflächen zu entfernen, aber selbst das einfache erneute Öffnen des mxd führt dazu, dass die Duplizierung erneut auftritt.

Im Allgemeinen befinden sich die zugehörigen Dateien auf einer Netzwerkfreigabe, und ich kopiere die .esriaddin-Datei an einen anderen Netzwerkspeicherort, um sie an eine Reihe von Benutzern zu verteilen. Manchmal kopiere ich diese Dateien auf mein lokales Laufwerk, bearbeite sie offline und installiere das Add-In, um es offline zu testen.

Wenn ich zum Add-In-Manager gehe, sehe ich mein Add-In-Projekt nur einmal. Ich habe versucht es zu löschen und neu zu installieren.

Die Datei config.xml ordnet jede Schaltfläche nur einmal einem Menü oder einer Symbolleiste zu.

Die Benutzer, für die ich das Add-In verteile, sehen dieses Duplizierungsverhalten nicht.


Ihre Normal.mxt ist möglicherweise beschädigt.

Gehe zu:

C:BenutzerNameAppDataRoamingESRIDesktop10.2ArcMapTemplates

und löschen Sie die Datei Normal.mxt.

Dadurch werden alle Symbolleisten/Anpassungen aus ArcMap entfernt.

Hier sind ein paar weitere Informationen von ESRI.


Dynamisches Hinzufügen und Entfernen von Widgets in PyQt

Mit PyQt versuche ich, eine Schnittstelle zu erstellen, für die ich Widgets dynamisch hinzufügen oder entfernen kann. Ich möchte eine separate Klasse für das Widget definieren, das hinzugefügt oder entfernt wird. Ich kann das Widget, das ich instanziiere, anscheinend nicht abrufen, um es in der Hauptschnittstelle anzuzeigen. Hier ist der Code, den ich verwende:

Die Sache ist die, wenn ich den folgenden Code in meiner 'addWidget'-Methode verwende, macht er genau das, was ich will, aber die Klassenmethode scheint nicht zu funktionieren.

Ich frage mich, warum z = Test() keine Ergebnisse liefert. Irgendwelche Ideen? Vielen Dank!


Duplizieren von Umfragen und Bearbeiten von Datensätzen in einem Webformular

Okay. dieser scheint eine Herausforderung zu sein. Ich bin in der Lage, zu tun, was ich will - ein bisschen -, aber nicht wirklich die Ergebnisse, die ich will. Ich habe in meinem Popup-Fenster einen Link zu meinem Umfrageformular erstellt, damit es möglich ist, zurückzugehen und eine Umfrage zu bearbeiten. Ich habe eine Schaltfläche im Formular erstellt, die mit einem relevanten Feld verknüpft ist, sodass Sie bei einer neuen Umfrage die Informationen eingeben können oder bei einer Aktualisierung die vorherigen Informationen beibehalten und die neuen Felder in einer Gruppe aktualisieren können. im Wesentlichen das Hinzufügen von Informationen zu Feldern, die sich auf die Aktualisierungsschaltfläche beziehen. Ich habe eine Wiederholung erstellt, die nur Auswahlen zu einer verknüpften Tabelle hinzufügt, sodass dies nicht funktioniert.

Die Funktionsweise müsste darin bestehen, auf die Schaltfläche Datensatz aktualisieren zu klicken und alle (oder einige) der ursprünglichen Umfragefelder zu duplizieren. Es würde keine der vorherigen Umfragen ändern und nur Informationen zum erneuten Besuch oder zum Status hinzufügen / aktualisieren. Es würde eine Art Protokoll oder eine Historie von Umfragen sein.

Ich habe dies mit Berechnungen und relevanten Feldern getan, aber es ist nicht wirklich das, was ich suche (siehe Formular unten). Das Popup würde die neuesten Informationen zum Status auf der Karte anzeigen (siehe Abbildung 1), aber das ist im Moment nicht so wichtig und mit dieser Methode nicht ganz möglich. Wichtig wäre, jeder Umfrage zusätzliche Informationen hinzuzufügen. Die neuen Informationen würden dem Popup hinzugefügt und durch die Konfiguration des HTML-Codes gesteuert (siehe Abbildung 2). Im Moment weiß ich nicht, wie viele Datensätze hinzugefügt werden würden, gehe aber davon aus, dass mehrere hinzugefügt werden könnten. Irgendwelche Ideen?


Technische Spezifikationen

GeoRover-Add-Ins werden in der ArcGIS Pro™-Komponente von Esri ® ArcGIS ® Desktop 2.3 oder höher installiert und führen jede Lizenzstufe (Basic, Standard oder Advanced) aus.

GeoRover-Erweiterungen werden in der ArcMap™-Komponente von Esri ® ArcGIS ® Desktop 10.3 oder höher installiert und können jede Lizenzstufe ausführen (Basic, Standard oder Advanced).

Zur vollständigen Unterstützung interaktiver HTML-Produkte ist ein moderner Webbrowser erforderlich.

Microsoft ® PowerPoint ® Präsentationsgrafikprogramm erforderlich, um Export Wizard-Produkte in der Locus Track-Erweiterung vollständig zu unterstützen. Hinweis: PowerPoint 2003 und höher oder der richtige Videocodec sind für die volle Funktionalität eingebetteter Videos in PowerPoint-Präsentationen erforderlich.

Microsoft ® Excel ® -Tabellenkalkulationssoftware ist erforderlich, um die Import- und/oder Exportassistent-Produkte im Level-Add-In und den Erweiterungen Locus Track, Digital Data Tracker und Range Tools vollständig zu unterstützen.

GPS-Empfänger für maximale Funktionalität mit Digital Data Tracker-Erweiterung erforderlich. Garmin ® (USB) und NMEA-Protokolle werden unterstützt.

Für die Installation und Aktivierung der GeoRover-Mobilanwendung ist die Android™-Plattformversion 2.1 oder höher erforderlich.

Der Markt für mobile Geräte verändert sich schnell. Bitte kontaktieren Sie uns für die erforderlichen Informationen zu Mobilgeräten, um die GeoRover Mobile-Lösung zu verwenden.

Microsoft .NET Framework v4.5.2 oder höher ist erforderlich, um GeoRover-Erweiterungen zu installieren und auszuführen, und Microsoft .NET Framework v4.6.1 oder höher ist erforderlich, um GeoRover-Add-Ins zu installieren und auszuführen.

GeoRover License Manager v4.0 oder höher ist erforderlich, um alle GeoRover-Erweiterungen zu installieren und auszuführen. License Manager AGP wird automatisch mit GeoRover-Add-Ins installiert und enthält aktuelle Versionen.

FlexRT (Import/Export) arbeitet mit Formaten (z.B. Local Point Files & Draw Files) der FalconView ® Versionen 3.2 – 4.1.

1 GHz oder höher empfohlen und Intel Pentium 4 oder Intel Core Duo für Add-Ins

512 MB RAM oder höher empfohlen für Erweiterungen und mindestens 4 GB für Add-Ins.

Mindestens 50 MB freier Festplattenspeicher für die vollständige Installation (für alle GeoRover-Softwareerweiterungen)

Die empfohlene Bildschirmauflösung für ArcGIS for Desktop beträgt mindestens 1024 x 768 oder höher bei normaler Größe (96 dpi). Obwohl die neuesten Versionen der GeoRover-Softwareerweiterung mit größeren DPI-Einstellungen (120 dpi) kompatibel sind.

GeoRover-Softwareprodukte sind eine Suite von Erweiterungen für die ArcMap ™ -Komponente von Esri ® ArcGIS9.x und 10.x.. GeoRover-Softwareprodukte funktionieren in allen ArcGIS-Lizenzstufen (Basic, Standard, Advanced). Jede Erweiterung ist kompatibel bis zu ArcGIS ® 10.3 bis 10.8. GeoRover-Software-Add-Ins sind für die ArcGIS ® Pro-Umgebung verfügbar und mit den Versionen 2.2 bis 2.8 kompatibel.

Nein. Alle GeoRover-Softwareprodukte sind kommerziell lizenzierte Softwareprodukte, die direkt von Leidos oder über Leidos GeoRover-Software-Händler erworben werden können (weitere Informationen finden Sie in FAQ Nr. 6).

  • Stufe v0.9
  • Locus-Track v4.1.1
  • Digitaler Datentracker v4.3
  • RPF-Tools v4.1
  • Bereichstools v4.2.1
  • Koordinatenanzeige v4.1
  • Zoom-Tools v4.1
  • Lizenzmanager v4.1
  • Lizenzserver v4.0.3
  • GeoRover Mobile-Anwendung v1.1
  • GeoRover Mobile Desktop v1.1
  • FlexRT v4.1.1
  • Stufe v0.9
  • Locus-Track v4.0.3, v4.1
  • Digitaler Datentracker v4.1, v4.2, v4.3
  • RPF Tools Version 4.0.1, v4.1
  • Bereichstools v4.1, v4.2
  • Koordinatenanzeige v4.0.3, v4.1
  • Zoom-Tools v4.0.3, v4.1
  • Lizenzmanager v4.0, v4.1
  • FlexRT v4.0.1, 4.1

Für die Installation und Aktivierung der GeoRover Mobile-Anwendung ist die Android™-Plattformversion 2.1 oder höher erforderlich.

Der Markt für mobile Geräte verändert sich sehr schnell. Kontaktieren Sie uns für die erforderlichen Informationen zu Mobilgeräten, um die GeoRover Mobile-Lösung zu verwenden.

Informationen zur Installation der GeoRover Mobile-Lösung finden Sie in der GeoRover Mobile-Installations-Kurzanleitung.

Jawohl. Die meisten GeoRover Softwareprodukte, Schulungen und Softwarewartungen sind im GSA IT Schedule, Contract #GS-35F-116AA, verfügbar. Um ein GeoRover-Softwareangebot zu erhalten, kontaktieren Sie uns.

Kontaktieren Sie uns, um eine Liste der aktuellen GeoRover-Software-Händler zu erhalten.

Jawohl. GeoRover-Software, -Abonnement, -Wartung und -Schulung sind in drei Preisoptionen erhältlich:

  1. Kommerziell/International
  2. Bundes-, Landes- und Kommunalverwaltung (GSA)
  3. Akademiker (nur USA)

Es gibt auch mengenabhängige Rabatte für GeoRover-Softwareprodukte und -Wartung. Kontaktieren Sie uns für spezifische Preisdetails.

Jawohl. Das GeoRover-Software-Abonnementprogramm bietet eine kostengünstige Möglichkeit, über Software-Updates auf dem Laufenden zu bleiben und technischen Support bei GeoRover-bezogenen Problemen oder Fragen zu erhalten. Kontaktieren Sie uns für weitere Details.

Kontaktieren Sie uns für Softwareproduktpreise oder ein Softwareangebot.

Wenn Sie innerhalb von 30 Tagen ein gültiges Angebot erhalten haben und bereit sind, per Kreditkarte oder Bestellung zu bestellen, kontaktieren Sie uns.

Wenn Ihre GeoRover-Softwarewartung aktiv ist, können Sie unser Support-Team per E-Mail unter [email protected] oder telefonisch unter 866-417-5322 erreichen.

Die Lizenzdatei wird per E-Mail an die Kontaktstelle im Auftragsvergabedokument gesendet. Wenden Sie sich an den Softwaremanager Ihres Unternehmens, um die Lizenzdatei anzufordern. Wenn zusätzliche Hilfe erforderlich ist, kontaktieren Sie uns mit den Details Ihrer Bestellung.

Wir arbeiten mit jedem Kunden zusammen, um sicherzustellen, dass das Personal mit der GeoRover-Software vollständig geschult ist. Für Benutzer, die keine Erfahrung mit ArcGIS haben, empfehlen wir 3 Tage, um eine Einführung in die Esri ArcGIS Desktop-Software und die GeoRover-Softwareerweiterungen zu erhalten. Weitere Informationen finden Sie im Schulungsbereich dieser Seite.

Jawohl. GeoRover-Softwareprodukte werden mit ausführlichen Handbüchern zur Selbstbedienung geliefert.

Um diese Handbücher anzuzeigen, navigieren Sie zu Start > Programme > GeoRover > Benutzerhandbücher.

Jawohl. Die GeoRover-Software kann persönliche, Datei- und Unternehmens-Geodatabases bearbeiten. Die GeoRover Locus Track-Erweiterung ist mit ArcSDE ® -Geodatabases kompatibel und kann daher vollständig für Unternehmen skaliert werden. Sie können die Esri-Architektur nutzen und sie gleichzeitig mit GeoRover-Softwaretools einfach und intuitiv gestalten.

Nein. Nahezu jede Digitalkamera funktioniert mit der GeoRover Digital Data Tracker-Erweiterung.

ArcMap 10.x wird empfohlen, um die neuesten Softwareerweiterungen zu betreiben. GeoRover-Softwareprodukte funktionieren in allen ArcGIS-Lizenzstufen (Basic, Standard und Advanced). GeoRover-Add-Ins sind mit ArcGIS ® Pro-Versionen 2.2 bis 2.8 kompatibel.

Jawohl. Alle GeoRover-Produkte unterstützen die gleichzeitige Lizenzierung. Die GeoRover License Server-Anwendung (Server) und die GeoRover License Manager-Anwendung (Client) werden auf Windows-Betriebssystemen unterstützt und sind für die gleichzeitige Lizenzierung erforderlich.

Der GeoRover-Lizenzserver verwendet das Client-Server-System Reprise Software License Management (RLM), das Lizenzanforderungen über ein TCP/IP-Netzwerk von der Softwareanwendung an einen Lizenzserver überträgt, der die Lizenznutzungsrechte kontrolliert.

Kontaktieren Sie uns, um Informationen zur Umstellung der Lizenzierung von Single-Use auf Concurrent zu erhalten.

Verteidigungsministerium und Geheimdienste

  • Streckenaufklärung
  • Standortuntersuchungen
  • Convoy Strip Karten und Aufklärung
  • Patrouillen
  • Feste Site-Sicherheit
  • Cordon &-Suche
  • Geheimdienstpläne und Sammlungen

Heimatschutz

Umwelt und natürliche Ressourcen

  • Umweltstudien
  • Naturkatastrophenplanung/-bewertung
  • Wartungs- und Reparaturdokumentation

Immobilien & Eigentum

Strafverfolgung

Nationalparkdienst - Forstdienst

  • Unterstützen Sie Parks bei der einfachen Erstellung von GIS-Datenbanken
  • GIS-Layer für nationale Wanderwege aktualisieren
  • Feldstudien mit Multimedia-Links

Akademiker - Universitäten

  • Fachbereiche Geographie, GIS, Geologie, Archäologie, Biologie und Architektur
  • Campus Facility Management

Reisen & Expeditionen

  • Protokollieren Sie Expeditionen in einem GIS/geografischen Kontext
  • Dokumentenreisen in einem multimedialen räumlichen Kontext
  • Gastgewerbe - Sehenswürdigkeiten Karte mit Multimedia-Links

Transport

  • Multimediale Verlinkung von Schildern, Kreuzungen, Ausfahrten, Meilenmarkierungen
  • Schnelle Schadensgutachten durchführen

Versorgungsunternehmen und Ölpipelines

  • Feldwartungsbewertungen von Versorgungsinfrastrukturen und Pipelines
  • Feldbewertungen für die Platzierung neuer Versorgungsinfrastrukturen und Pipelines

Starten einer Editiersitzung

Die Bearbeitung erfolgt in einer Bearbeitungssitzung. Während einer Bearbeitungssitzung können Sie Vektor-Features oder tabellarische Attributinformationen erstellen oder ändern. Wenn Sie bearbeiten möchten, müssen Sie eine Bearbeitungssitzung starten, die Sie beenden, wenn Sie fertig sind. Die Bearbeitung gilt für einen einzelnen Workspace in einem einzelnen ArcMap-Datenrahmen, wobei ein Workspace eine Geodatabase oder ein Ordner mit Shapefiles ist. Wenn Ihre Karte mehr als einen Datenrahmen enthält, können Sie die Layer nur in einem Datenrahmen bearbeiten – selbst wenn sich alle Daten im selben Arbeitsbereich befinden. Obwohl Sie Daten in verschiedenen Koordinatensystemen bearbeiten können, ist es im Allgemeinen am besten, wenn alle Daten, die Sie gemeinsam bearbeiten möchten, dasselbe Koordinatensystem wie der Datenrahmen haben.

Es gibt zwei Möglichkeiten, eine Editiersitzung zu starten: durch Klicken auf das Menü Editor in der Werkzeugleiste Editor oder durch Klicken mit der rechten Maustaste auf einen Layer im Inhaltsverzeichnis. Wenn Sie das Menü Editor verwenden, um die Bearbeitung eines Datenrahmens zu starten, der Daten aus mehreren Arbeitsbereichen enthält, werden Sie aufgefordert, den zu bearbeitenden Arbeitsbereich auszuwählen. Wenn Sie im Inhaltsverzeichnis mit der rechten Maustaste auf einen Layer klicken, starten Sie automatisch eine Bearbeitungssitzung für den gesamten Arbeitsbereich, der diesen Layer enthält.

Meistens bearbeiten Sie Daten in der Datenansicht, da nur die Daten in Ihrer Karte angezeigt und die Layoutelemente ausgeblendet werden. Sie können auch in der Layoutansicht bearbeiten, obwohl die Bearbeitung in der Datenansicht normalerweise einfacher und genauer ist. Die Bearbeitung in der Layoutansicht ist jedoch nützlich, wenn Sie im Kontext Ihres Kartenlayouts kleinere Ergänzungen an Ihrer Karte vornehmen möchten.

Änderungen sind temporär, bis Sie sie speichern und dauerhaft auf Ihre Daten anwenden. Sie können eine Editiersitzung auch beenden, ohne Ihre Änderungen zu speichern. Durch das bloße Speichern eines Kartendokuments werden die Änderungen an den Features nicht gespeichert – Sie müssen die Änderungen in Ihrer Bearbeitungssitzung speziell speichern. Wenn Sie Änderungen speichern, schreiben Sie sie in die Datenquelle oder eine Datenbank.

Wenn Sie mit Daten in einer Datenbank arbeiten, handelt es sich beim Vornehmen und Speichern von Änderungen um Transaktionen für die Datenbank. Versionen ermöglichen es mehreren Benutzern in einer Mehrbenutzer-Geodatabase, dieselben Daten zu bearbeiten, ohne Feature-Sperren anzuwenden oder Daten zu duplizieren. Wenn Benutzer bereit sind, ihre Änderungen anzuwenden, führen sie ihre Änderungen durch einen Prozess des Abgleichens von Änderungen, Auflösen von Konflikten und Veröffentlichen ihrer Änderungen in der übergeordneten Version einer Datenbank zusammen.

Einige Datentypen, z. B. CAD-Zeichnungen oder Coverages, können in ArcMap angezeigt, aber nicht bearbeitet werden und müssen in der nativen Anwendung der Daten bearbeitet werden. Während Sie beispielsweise Coverages in ArcMap anzeigen können, können Sie sie nur in ArcInfo Workstation bearbeiten. Sie können diese Nur-Anzeige-Formate in Geodatabase-Feature-Classes oder Shapefiles importieren und in ArcMap bearbeiten.


5 Antworten 5

Es ist am besten, destruktive Handlungen von anderen Handlungen fernzuhalten. Selbst wenn Sie eine Bestätigung für Ihre destruktiven Aktionen haben, ist es der bessere Weg, sie nicht versehentlich anzuklicken, als eine Bestätigung abzubrechen. Das heisst Option B würde die Frustration der Benutzer begrenzen.

Ich würde empfehlen, die Tasten in Option B zu tauschen:

Dies liegt daran, dass sich Ihre Kombinationsfelder auf der linken Seite befinden und der Benutzer nicht mit den Augen oder der Maus die horizontale Tabellenlänge überqueren muss, um mehrere Felder auszuwählen und dann auf Bearbeiten zu klicken. Wenn Sie dies für die Löschaktion tun müssen, wird es auch schwieriger, versehentlich auf die Schaltfläche zu klicken.

Ich würde auch vorschlagen, die Schaltflächen am unteren Rand der Tabelle zu duplizieren. Könnte bei einer kürzeren Tabelle seltsam aussehen, aber Benutzer, die mit längeren Tabellen interagieren, würden es begrüßen, wenn sie nicht nach oben scrollen müssen.

Sie können auch einzelne Zeilenaktionen beim Mouseover hinzufügen, indem Sie die Schaltflächen zum Bearbeiten und Löschen erneut entsprechend platzieren, um versehentliche Aktivierungen zu vermeiden.

(beachten Sie, dass meine Platzierung im obigen Beispiel nicht die beste wäre, nur ein Beispiel)

Ähnliche Beispiele und Vorschläge finden Sie unter Antworten auf die folgende Frage: Viele Schaltflächen auf der Seite, Verbesserungsmöglichkeiten?


wenn Sie tatsächlich nur versuchen, den Befehl "Parallel kopieren." auszuführen. das kannst du so machen

Wenn Sie versuchen, die Kopie programmgesteuert parallel zu duplizieren, habe ich nur die Verwendung von IConstructCurve3 gefunden, um den Vorgang nachzuahmen. Diese Methode scheint fast die gleichen Parameter zu haben.

Ich habe nur den relevanten Teil mit IConstructCurve3 gehackt, stellen Sie sicher, dass Sie Ihre Überprüfungen durchführen und wenn Sie möchten, kopieren Sie das Quellfeature-Attribut.

Wenn Sie über VS2010 verfügen, wird dieser Code ausgeführt, wenn Sie einfach ein Schaltflächen-Add-In erstellen, indem Sie die ESRI ArcMap-Add-In-Projektvorlage mit einer Schaltfläche verwenden. Kopieren Sie dann den Code und fügen Sie ihn in das Ereignis OnClick() ein. (Vergessen Sie natürlich nicht, die notwendigen esri-Referenzen einzurichten)


4 Antworten 4

Sie können dies erheblich vereinfachen, wenn Sie eine bessere Speicherdatenstruktur als eine List<T> verwenden. Sie möchten nur verschiedene Elemente, HashSet<T> ist hier im Allgemeinen besser, da es O(1)-Lookups hat.

Beachten Sie, dass ich die unnötige Prüfung auf Erfolg für das Match-Objekt entfernt habe.

Ihre Namensgebung könnte etwas Arbeit vertragen. myRegex bedeutet nicht wirklich etwas.

Sie können die Regex auch als Feld in der Klasse speichern, um diese Methode zu entrümpeln.

Sie können auch ein HashSet<string> in Ihrer CleanDuplicates-Methode nutzen:

Fügen Sie auf jeden Fall eine Verwendung von System.IO hinzu, die eine Menge Unordnung beseitigt.

Bevorzugen Sie eingebaute Methoden, z.B. File.WriteAllLines überschreibt die Datei oder erstellt eine neue - Sie müssen keinen StreamWriter herausholen.

Beachten Sie auch, dass dies ziemlich langsam wird, wenn Ihre Datei wirklich groß wird.

var kann nicht in der foreach-Schleife verwendet werden, da MatchCollection nur IEnumerable implementiert – nicht die generische Version. Das tut mir leid.

Um eine Linq-Methode (wie Select) zu verwenden, müssen wir den Typ durch Aufrufen von Cast<T> bereitstellen:


2016 Moderatorenwahl Q&A - Fragebogen

Im Zusammenhang mit den Moderatorenwahlen veranstalten wir einen Q&A-Thread für die Kandidaten. In diesem Thread wurden Fragen aus einem früheren Thread zusammengestellt, der nun als Raum für die Antworten der Kandidaten dienen soll. Nicht jede Frage wurde zusammengestellt - wie bereits erwähnt, haben wir nur die 8 wichtigsten Fragen ausgewählt, die von der Community eingereicht wurden, plus 2 voreingestellte Fragen von uns.

Im Rahmen eines laufenden Tests führen wir den Fragebogen zeitgleich mit den Nominierungen durch. Bitte beantworten Sie diese Frage erst, wenn Sie Ihre Nominierung bereits eingereicht haben.

Als Kandidat ist Ihre Aufgabe einfach - posten Sie eine Antwort auf diese Frage, zitieren Sie jede der Fragen und posten Sie dann Ihre Antwort auf jede Frage, die in derselben Antwort gegeben wird. Der Einfachheit halber füge ich alle Fragen im Zitatformat mit einer Pause dazwischen ein, damit Sie Ihre Antworten einfügen können. Kopieren Sie einfach das Ganze nach dem ersten Satz von drei Strichen. Oh, und denken Sie bitte daran, Ihren Namen oben in Ihrem Beitrag zu platzieren, damit die Leser wissen, wer Sie sind, bevor sie alles gelesen haben, was Sie geschrieben haben.

Sobald alle Antworten zusammengestellt wurden, dient diese als Transkript für die Wähler, um die Gedanken ihrer Kandidaten einzusehen, und wird auf der Wahlseite entsprechend verlinkt.

Allen Kandidaten viel Glück!

Oh, und wenn Sie Ihre Antwort abgeschlossen haben, geben Sie bitte einen Link dazu nach diesem Klappentext hier, vor diesem Satz von drei Bindestrichen. Bitte belassen Sie die Linkliste in der Reihenfolge der Einreichung.

Um sich das Scrollen zu ersparen, finden Sie hier Links zu den Einreichungen der einzelnen Kandidaten (in der Reihenfolge der Einreichungen):


Die Grundlagen verstehen

Was ist ein Python-Thread?

Ein Thread ist ein leichtgewichtiger Prozess oder eine Aufgabe. Ein Thread ist eine Möglichkeit, Ihren Programmen Parallelität hinzuzufügen. Wenn Ihre Python-Anwendung mehrere Threads verwendet und Sie sich die Prozesse ansehen, die auf Ihrem Betriebssystem ausgeführt werden, sehen Sie nur einen einzigen Eintrag für Ihr Skript, obwohl es mehrere Threads ausführt.

Was ist Multithreading?

Multithreading (manchmal einfach "Threading") ist, wenn ein Programm mehrere Threads erstellt, zwischen denen die Ausführung zyklisch durchlaufen wird, sodass eine länger laufende Aufgabe nicht alle anderen blockiert. Dies funktioniert gut für Aufgaben, die in kleinere Teilaufgaben zerlegt werden können, die dann jeweils einem zu erledigenden Thread zugewiesen werden können.

Was ist der Unterschied zwischen Python-Threading und Multiprocessing?

Beim Threading wird die Parallelität mit mehreren Threads erreicht, aber aufgrund der GIL kann immer nur ein Thread gleichzeitig ausgeführt werden. Beim Multiprocessing wird der ursprüngliche Prozess unter Umgehung der GIL in mehrere untergeordnete Prozesse aufgeteilt. Jeder untergeordnete Prozess hat eine Kopie des gesamten Programmspeichers.

Wie hängen Python-Multithreading und Multiprocessing zusammen?

Sowohl Multithreading als auch Multiprocessing ermöglichen die gleichzeitige Ausführung von Python-Code. Nur Multiprocessing ermöglicht es, dass Ihr Code wirklich parallel ist. Wenn Ihr Code jedoch IO-lastig ist (wie HTTP-Anfragen), wird Multithreading Ihren Code wahrscheinlich immer noch beschleunigen.