2010-07-28 19 views
0

J'ai téléchargé la source Python 2.6.5, l'ai construite pour OS 10.6.4 64 bits, et installé de nombreuses dépendances. J'ai ouvert un gros projet sur lequel notre équipe travaillait récemment, a fait les tests unitaires, et l'un des tests a échoué parce que j'avais installé Python en utilisant UCS-2 (je ne savais pas que c'était la valeur par défaut d'OS X!)Comment est-ce que je peux remplacer une construction de Python 2.65 UCS-2 avec un construit en utilisant UCS-4 sans perdre tout dans mes paquets de site?

En un mot: Je n'ai pas fourni le flag --enable-unicode=ucs4 lors de la construction de Python. (comme je l'ai découvert était nécessaire: http://copia.posterous.com/confusion-over-python-storage-form-for-unicod)

Maintenant, je veux corriger cela sans perdre tout ce que je mets dans les paquets de site.

Est-ce possible? Si c'est le cas, comment?

Merci! Michaux

+0

Juste un FYI pour toute personne lisant cette question: Vous aurez probablement besoin de reconstruire numpy: (Merci Alex!) Erreur: dlopen (/usr/local/lib/python2.6/site-packages/ numpy/core/multiarray.so, 2): Symbole non trouvé: _PyUnicodeUCS2_FromUnicode Référencé par: /usr/local/lib/python2.6/site-packages/numpy/core/multiarray.so Attendu dans: recherche dynamique – mkelley33

Répondre

1

Vous pouvez sauvegarder et restaurer /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages (par exemple comme .tar.bz2), mais les restaurées .so s ne fonctionnera pas correctement si l'un de leurs points d'entrée concernent les objets Python Unicode - donc, ces paquets (contenant tout tels fichiers .so) vous devrez reconstruire/réinstaller une fois que votre nouvelle version de Python fonctionne! J'espère que c'est loin de «tout» que vous avez mis dans des paquets de site (les doigts croisés).

+0

I Je me sens courageux ce soir. Je pense que je vais essayer votre suggestion; cependant, avant que je fais: prévoyez-vous des complications étant donné que je compte sur le SciPy, Numpy, libsvm, bsddb3, MySQL_python-1.2.3, et pyodbc dans mes paquets de site? (De plus, j'ai défini mon PATH pour utiliser le Python que j'ai installé dans/usr/local/lib) Merci encore! – mkelley33

+0

@mkelley, cela dépend - voulez-vous envoyer à l'un de ces paquets, ou recevoir de leur part, des objets Unicode? Si c'est le cas, alors ils devront être reconstruits - mais si vous n'envoyez et ne recevez que des chaînes d'octets (ou des données non-chaîne), je ne m'y attendrais pas. –

+0

Merci. Je prévois d'envoyer des objets Unicode à eux. J'ai plus à apprendre sur comment et pourquoi les fichiers .so sont impliqués. Pour l'instant, je suis prêt à risquer de devoir réinstaller les dépendances susmentionnées (je me suis assuré de documenter "comment" je les ai construits et installés en premier lieu!) Merci! – mkelley33