[Python-de] Wie einzelne Module aus site-packages in virtualenv übernehmen?

Sebastian Wiesner lunaryorn at gmail.com
Do Aug 22 11:30:47 CEST 2013


Am 22. August 2013 10:17 schrieb Hartmut Goebel <h.goebel at goebel-consult.de>:
> Hallo zusammen,
>
> ich baue eben eine Entwicklungsumgebung für
> https://github.com/coherence-project/. Das Package benutzt u.a. Twisted, ein
> Teilprojekt gar PyQt. Diese Packages sind bei mir bereits in site-packages
> installiert.
>
> Nun möchte ich ein virtualenv aufsetzen, und ausgewählte Packages (eben oben
> genannte) dort verfügbar machen. damit möchte ich vermeiden, dass diese
> Pakete jedesmal compiliert werden müssen -- und ich die gesamten
> Entwickler-Pakete für Qt installieren muss.
>
> "virtualenv --system-site-packages" stellt aber alle Packages im vrtualenv
> zur Verfügung. Ich möchte nur ausgewählte haben.
>
> Hat jemand ein paar Code-Snippsel für mich, oder ein kleines Tool?

Es gibt kein Tool, und ich glaube auch nicht, dass jemand dafür
Quelltext bereitstellen kann.  Aus guten Grund, denn einfach so Pakete
aus dem System-Python zu kopieren, kann ziemlich leicht schiefgehen,
wenn die Versionsnummern abweichen.

Ich würde mithin davon absehen, einfach so Module hin und her zu
kopieren, und stattdessen in den sauren Apfel beißen, und PyQt für das
jeweilige virtualenv kompilieren.  Das kostet zwar Zeit, und dauert,
aber nicht so lange, wie das Debuggen eines mysteriösen Absturzes
aufgrund einer ABI-Inkompatibilität, oder merkwürdiger Fehler aufgrund
vergessener Qt-Plugins (e.g. PNG-Bilder werden nicht angezeigt, weil
das entsprechende QImage-Plugin nicht mehr gefunden wird).


Mehr Informationen über die Mailingliste python-de