Die gesamte Dokumentation für Pyinstaller spricht über die Aufnahme einzelner Dateien. Ist es möglich, ein Verzeichnis einzuschließen, oder sollte ich eine Funktion zum Erstellen des Include-Arrays schreiben, indem ich mein Include-Verzeichnis durchquere?Einfügen eines Verzeichnisses mit Pyinstaller
Antwort
Ich bin überrascht, dass niemand die offizielle Option Tree()
mit unterstützt erwähnt:
https://stackoverflow.com/a/20677118/2230844
https://pythonhosted.org/PyInstaller/advanced-topics.html#the-toc-and-tree-classes
Was ist nur mit glob
?
from glob import glob
datas = []
datas += glob('/path/to/filedir/*')
datas += glob('/path/to/textdir/*.txt')
...
a.datas = datas
Fügen Sie den folgenden nach a = Analysis()
in der Spec-Datei ein Verzeichnis rekursiv und fügen Sie alle Dateien in es um die Verteilung zu durchqueren.
##### include mydir in distribution #######
def extra_datas(mydir):
def rec_glob(p, files):
import os
import glob
for d in glob.glob(p):
if os.path.isfile(d):
files.append(d)
rec_glob("%s/*" % d, files)
files = []
rec_glob("%s/*" % mydir, files)
extra_datas = []
for f in files:
extra_datas.append((f, f, 'DATA'))
return extra_datas
###########################################
# append the 'data' dir
a.datas += extra_datas('data')
Entschuldigen Sie mich, aber ich wirklich nicht bekommen. Ich habe ein Verzeichnis mit dem Namen '~/Scripts'. Meine Daten werden in '~/Scripts/Data' gespeichert. Soll ich 'a.datas + = extra_datas ('data')' durch 'a.datas + = extra_datas ('Data')' ersetzen? –
Wenn sich Ihr pyInstaller-Skript auch in 'Scripts' befindet und Sie es mit' python mybuildscript.py' innerhalb von 'Scripts' aufrufen, dann sollten Sie mit' Data' ersetzen, andernfalls verwenden Sie '.' und' ..', um zu navigieren der Verzeichnisbaum. – styts
- 1. Rename Teil eines Verzeichnisses
- 2. Entfernen eines Verzeichnisses mit Dateien in AppData
- 3. Erstellen eines Verzeichnisses beim Erstellen mit Waf
- 4. Kürzen eines Verzeichnisses mit JavaFX-Medien
- 5. Hinzufügen eines Verzeichnisses in CVS
- 6. Entpacken eines Verzeichnisses in C++
- 7. Sperren eines Verzeichnisses in HDFS
- 8. Umbenennen eines Verzeichnisses in C#
- 9. Pyinstaller mit Python3.x
- 10. Eingabe eines .htaccess-geschützten Verzeichnisses mit Hilfe eines Formulars
- 11. Kill einen Subprozess mit PyInstaller
- 12. Pygame.image.load() nicht mit PyInstaller Arbeits
- 13. Exe zu Python mit Pyinstaller?
- 14. Finden Sie den Inhalt eines Verzeichnisses
- 15. pyInstaller: Importfehler
- 16. Jede Datei eines ausgewählten Verzeichnisses übergeben
- 17. Auswählen eines übergeordneten Verzeichnisses in html
- 18. Erstellen eines temporären Verzeichnisses in Windows?
- 19. Wie Symbol/Emblem eines Verzeichnisses von bash
- 20. Ändern des aktuellen Verzeichnisses eines FileSystemObject
- 21. Git: Umbenennen eines Verzeichnisses in einem Zweig
- 22. Hinzufügen eines Verzeichnisses zum Ladepfad in Rails?
- 23. Verwenden von FileSystemWatcher zum Überwachen eines Verzeichnisses
- 24. Inhalt eines Verzeichnisses in ein anderes kopieren
- 25. Pyinstaller Zurückverfolgungs
- 26. Python urllib Download Inhalt eines Online-Verzeichnisses
- 27. Linux-Befehl zum Verschieben eines Verzeichnisses
- 28. svn Kopie auf einer Teilmenge eines Verzeichnisses
- 29. Erstellen eines Admin-Verzeichnisses in Rails
- 30. Löschen eines Verzeichnisses beim Beenden in Java
Vielen Dank für die Freigabe, mit [der Tree-Klasse] (https://pythonhosted.org/PyInstaller/advanced-topics.html#the-tree-class) löste es für mich in einer eleganten Art und Weise. Jetzt brauche ich nur diese eine Zeile: 'a.datas + = Baum ('./ dir_to_include', prefix = 'dir_to_include')' – sunyata
yep, ich denke es ist einfach nicht gut genug dokumentiert, aber diese Open-Source, also PRs sind willkommen :) – denfromufa