Ich bündle eine Python-Anwendung zusammen mit ihrer virtuellen Umgebung in einem RPM zur einfacheren Bereitstellung. Ist es eine gute Entscheidung, alle Dateien .pyo
und .pyc
wegzulassen?
Stattdessen würde ich compileall.py
in der Nachinstallationsaktion innerhalb der virtenv
-Instanz aufrufen. Funktioniert das, oder wird das Dinge vermasseln?
Hinweis: Mir ist klar, dass ich an einer Maschine versuchen könnte, aber a.) das würde mir keine schlüssige Antwort geben, ob das auf anderen Maschinen funktioniert und b.) andere haben vielleicht die gleiche Frage und ich habe nicht Find es nicht beantwortet.
Du könntest sie wirklich weglassen - sie werden entweder erzeugt (wenn du Schreibzugriff hast), oder die .py
wird bei jedem Import geparst (was Zeit kostet).
Abhängig von Ihrer Distribution kann Ihr RPM-System jedoch einfache Skripte zum Kompilieren von .py
-Dateien und zum Bündeln der Dateien .pyo
und .pyc
bei Verteilung enthalten, was die Aufgabe recht einfach macht.
Ich. e., können Sie %py_compile
resp. %py3_compile
in den Abschnitt %build
und Sie haben, was Sie brauchen.
Aber wie gesagt, Sie können sie auch weglassen, wenn Sie sie aus mehreren Python-Installationen verschiedener Versionsnummern verwenden wollen. Aber dann sollten Sie sicherstellen, dass die Dateien .pyc
und .pyo
niemals erstellt werden, da dies zu Problemen führen kann.
Es ist sicher, solange Sie ihre .py
-Dateien haben. Die Dateien .pyo
und .pyc
werden aus den ursprünglichen .py
-Dateien generiert.
Siehe auch Was bedeuten die Python-Dateierweiterungen? .pyc .pyd .pyo stehen für? und Wenn Python wird interpretiert, was sind .pyc-Dateien?
Tags und Links python python-2.7 virtualenv rpm