2008-11-12 6 views
4

Quand mon programme IronPython arrive à la ligneEst-il possible d'utiliser wxPython dans IronPython?

import wx 

Je reçois ce message:

A first chance exception of type 
'IronPython.Runtime.Exceptions.PythonImportErrorException' occurred in IronPython.dll 

Additional information: No module named _core_ 

bien que j'ai le fichier WX \ _core_.pyd. En outre, avant de tenter l'importation, j'ai les lignes:

sys.path.append('c:\\Python24\\Lib\\site-packages') 
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode') 
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode\\wx') 
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode\\wx\\lib') 
sys.path.append('c:\\Python24\\Lib\\site-packages\\wx-2.6-msw-unicode\\wxpython\\lib') 
sys.path.append('c:\\Python24\\Lib\\site-packages\\wxaddons') 

que je l'espérais laisser IronPython trouver tout ce dont il avait besoin.

Répondre

8

Non, cela ne fonctionnera pas. Les liaisons Wx (comme la plupart des autres "bindings python") sont en fait compilées sur CPython. À cet égard, ils ne sont pas seulement des paquets sur sys.path à trouver, comme vous l'avez essayé. Ils dépendent réellement de CPython lui-même. This rather dry document explains the process.

Note: Il y avait une mission par certains membres de l'équipage à Resolver Systems pour vous permettre d'utiliser les liaisons CPython avec IronPython (appelé IronClad), mais cela est à ses débuts, et je pense qu'ils vont se concentrer sur faire avancer les choses comme Numpy travaille d'abord, les toolkits GUI seront toujours les derniers, et les plus difficiles.

+0

Merci, je pensais que cela allait être la réponse –

+0

Je pense que si vous voulez obtenir l'interface utilisateur multiplateforme avec IronPython, vous êtes limité à 1. Windows Forms, 2. GTK # –

+0

(aussi) 3. wx.NET –

5

Alors que wxPython n'est pas disponible pour les raisons énumérées par @Ali, vous pouvez jeter un oeil à wx.NET. Vous pouvez utiliser IronPython pour appeler ces assemblages à la place, et il devrait être multi-plateforme (je suppose que c'est ce que vous recherchez, ou vous utiliseriez simplement WinForms). Si tout ce que vous cherchez est la compatibilité API, je pense que vous n'avez pas de chance :(

+1

+1 ne savait pas à propos de wx.NET –