Products von Linux nach Windows übertragen

Django, Flask, Bottle, WSGI, CGI…
Antworten
_Hannes
User
Beiträge: 2
Registriert: Mittwoch 2. August 2006, 14:21
Kontaktdaten:

Mittwoch 2. August 2006, 14:38

Hallo,

ich habe eine Linux-Version von Zope 2.7. Diese steht mir als Auszug der Ordnerstruktur zur Verfügung, ich habe also keinen Zugriff auf die eigentliche Web-Oberfläche. Durch Kopieren der data.fs habe ich soweit alles zum laufen bekommen. Das Problem ist jetzt jedoch, das die Products noch fehlen.
Sobald ich den Products-Ordner im Instanz-Verzeichnis der Windows-Installation, mit dem Ordner, in dem alle Products von der Linux-Version sind, ersetzen will, kommen beim starten der runzope.bat folgende Fehlermeldungen:

------
2006-08-01T10:54:36 ERROR(200) Zope Could not import Products.Five
Traceback (most recent call last):
File "C:\Programme\Zope-2.7.2-0\lib\python\OFS\Application.py", line 660, in import_product
product=__import__(pname, global_dict, global_dict, silly)
File "/var/lib/zope2.7.2/Products/Five/__init__.py", line 17, in ?
import os
File "/var/lib/zope2.7.2/Products/Five/zcml.py", line 13, in ?
ImportError: No module named zope.configuration
Traceback (most recent call last):
File "C:\Programme\Zope-2.7.2-0\lib\python\Zope\Startup\run.py", line 50, in ?

run()
File "C:\Programme\Zope-2.7.2-0\lib\python\Zope\Startup\run.py", line 19, in run
start_zope(opts.configroot)
File "C:\Programme\Zope-2.7.2-0\lib\python\Zope\Startup\__init__.py", line 51, in start_zope
starter.startZope()
File "C:\Programme\Zope-2.7.2-0\lib\python\Zope\Startup\__init__.py", line 230, in startZope
Zope.startup()
File "C:\Programme\Zope-2.7.2-0\lib\python\Zope\__init__.py", line 47, in startup
_startup()
File "C:\Programme\Zope-2.7.2-0\lib\python\Zope\App\startup.py", line 45, in startup
OFS.Application.import_products()
File "C:\Programme\Zope-2.7.2-0\lib\python\OFS\Application.py", line 637, in import_products
import_product(product_dir, product_name, raise_exc=debug_mode)
File "C:\Programme\Zope-2.7.2-0\lib\python\OFS\Application.py", line 660, in import_product
product=__import__(pname, global_dict, global_dict, silly)
File "/var/lib/zope2.7.2/Products/Five/__init__.py", line 17, in ?
File "/var/lib/zope2.7.2/Products/Five/zcml.py", line 13, in ?
ImportError: No module named zope.configuration

Ich habe durch Recherche bereits erfahren, das es möglicherweise an Python liegen könnte. Dort habe ich gelesen, das man in der zope.conf einen "path" angeben kann, der zum python-Verzeichnis einer Zope 3-Installation gehört. Ich habe Zope3 installiert, doch der python-Ordner ist leer. Anscheinend greift Zope 3 auf die manuell installierte python-Version zu.
In der zope.conf der Linux Installation ist jedoch ein Pfad angegeben, der genau dieser Vorgehensweise entspricht und auch ganz eindeutig zu einer Zope3 Installation gehört:

path /usr/lib/zopeX3/lib/python

Das Verzeichnis exisitiert zwar auch bei meiner zope3-Installation, ist jedoch wie schon gesagt leer. Ich habe aber kein Verzeichnis in der manuellen python-Installation gefunden, das der Struktur von der "zope-python"-version entspricht, zumindest nicht der von 2.x . Nun msste ich wissen, welchen Pfad ich bei "path" in der conf angeben muss (Vorrausgesetzt das ist überhaupt die Ursache für die Fehlermeldungen).

Kennt jemand eine Lösung für dieses Problem?


EDIT Habe grade beim genaueren Hinsehen bemerkt das in dem ursprünglichen Pfad Zope X3 steht und auch auf der Zope-Homepage die früheren Versionen noch diesen X-Zusatz haben. Macht das einen Unterschied in Sachen python ob ich jetzt Zope 3.2 oder Zope X3 habe?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 2. August 2006, 15:33

_Hannes hat geschrieben:ich habe eine Linux-Version von Zope 2.7.
[...]
Das Verzeichnis exisitiert zwar auch bei meiner zope3-Installation,
Hi _Hannes!

Ich muss dich enttäuschen: Zope 3.x ist nicht mit Zope 2.x kompatibel.
Du kannst kein Zope 2.7.x auf Zope 3.x updaten.

Die normale Vorgehensweise ist die, dass man sich die exakt gleiche Zope-Version installiert, eine neue Zope-Instanz anlegt und dann den Products-Ordner kopiert und die "data.fs"-Datei austauscht.

Dann sollte Zope normal hochfahren und man hat eine Zope-Instanz, mit der man probieren kann.

Wie es dann weiter geht, entscheidet, welche Produkte installiert sind und auf welche Version man diese updaten kann. Falls auch noch Plone mit im Spiel ist, wird es wahrscheinlich richtig kompliziert, da Plone in der letzten Zeit total umgekrempelt wurde. Das neue Plone 2.5 hat fast nichts mehr mit den Plone-Versionen vor 2.1 zu tun.

Ist Plone nicht mit dabei, dann sollte es keine große Schwierigkeit darstellen, auf das aktuelle Zope 2.9.4 (für Python 2.4.x) upzudaten. Falls aber Produkte im Spiel sind, die nicht mit diesem Zope-Zweig können, dann gibt es noch ein ziemlich abwärtskompatibles Zope 2.8.8 (für Python 2.3.5).

Wenn das neue Zope unter Windows laufen lassen möchtest, dann brauchst du dir um die Python-Version keine Sorgen zu machen. Beim Installieren von Zope wird zusätzlich in den Zope-Ordner die dafür vorgesehene Python-Version installiert.

Aber der erste Schritt ist immer noch, dass du die alte Zope-Version mit der alten Data.fs und den alten Produkten zum Laufen bekommst. Erst wenn das funktioniert, sehe ich eine realistische Chance, dass es dann auch mit einem Update funktioniert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
_Hannes
User
Beiträge: 2
Registriert: Mittwoch 2. August 2006, 14:21
Kontaktdaten:

Mittwoch 2. August 2006, 15:59

Erstmal Danke für die schnelle Antwort.
Die data.fs habe ich ja bereits ausgetauscht, nur funktionieren die Produkte nicht wie erwartet. Oben sind ja bereits die Fehlermeldungen zu sehen. Ohne die Plugins, also wenn ich den Ordner von Linux nich in Windows überschreibe, funktioniert Zope einwandfrei, nur werden die Plugins, die ja anscheinend auch in der data.fs gelistet sind, als defekt angezeigt. Ich könnte ein paar Tips gebrauchen wie man diese Fehler beheben kann.
Antworten