Znam różnicę między łączeniem statycznym i dynamicznym w C lub C++. Ale co to znaczy w Pythonie? Ponieważ jest to tylko interpreter i ma tylko jeden mechanizm importu modułów, jak to ma sens?Co to oznacza dla statycznego linkowania i dynamicznego linkowania w Pythonie?
Jeśli zamrażam moją aplikację Python z cx_freeze przez wykluczenie konkretnej biblioteki, czy jest to rodzaj dynamicznego linkowania? Ponieważ użytkownicy muszą samodzielnie pobrać i zainstalować tę bibliotekę, aby uruchomić moją aplikację.
W rzeczywistości mój problem polega na tym, że używam biblioteki PySide (z LGPL v2.1) do opracowania aplikacji GUI Pythona. Biblioteka mówi, że powinienem dynamicznie łączyć się z biblioteką, aby wypełniać ich warunki prawne (tak jak Qt). W takim przypadku w jaki sposób mogę dynamicznie łączyć się z PySide?
Myślę, że w jakikolwiek sposób normalnie używasz liczby PySide jako dynamicznego łączenia, nawet jeśli jest to część tego samego pobrania. Jeśli zbudujesz pojedynczy plik exe (który cx_Freeze i tak nie działa), niektórzy mogą nazwać to statyczne linkowanie, ale myślę, że większość nadal by tego nie robiła. Śmiało i użyj go - ludzie mogą tworzyć aplikacje w języku Python, więc jeśli to robisz, prawdopodobnie masz się dobrze. –
Dziękuję Thomas. Masz na myśli, nawet jeśli zbuduję pojedynczy plik exe (używając programu piorącego lub czegoś podobnego), to nadal dynamiczne linkowanie? Jeśli będę mógł kontynuować z prostym plikiem readme do instrukcji gdzie pobrać źródła pyside. Czy to jest? – Kaje
Myślę, że większość ludzi powiedziałaby, że to wciąż dynamiczne łączenie, a to, co proponujesz, powinno być w porządku. Jeśli się martwisz, zapytaj o to [Listę dyskusyjną PySide] (http://lists.qt-project.org/mailman/listinfo/pyside) - ważna jest ich interpretacja. Ale byłbym bardzo zaskoczony, gdyby uważali, że nie jest wystarczająco dobry. –