Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

Compilation de PyXPCOM

Cette traduction est incomplète. Aidez à traduire cet article depuis l'anglais.

Instructions pour la construction de PyXPCOM .

Note: Pour ceux qui veulent utiliser PyXPCOM au sein de Firefox et/ou XULRunner , l'extension PythonExt fournit des liaisons de PyXPCOM prédéfinis pour Firefox/XULRunner.

Installation de Python

Exigences PyXPCOM

  • PyXPCOM nécessite Python 2.3 ou ultérieure (Python 2.3 et 2.4 ont tous deux été récemment testé).
  • PyXPCOM nécessite l'accès à une bibliothèque Python partagé.

Linux

Pour les utilisateurs de Linux, le script de compilation devrait vérifier si vous avez une version adaptée de la bibliothèque partagée de Python. Aller au Compiler Mozilla , et si vous recevez une erreur qui vous dit un partage Python ne peut pas être localisé, alors vous aurez besoin de compiler Python avec --enable-shared.

Recent Fedora and Ubuntu builds

These distributions generally have a shared Python already available.

Gentoo systems

Building a shared Python library seems to only be possible with python-2.3* or later, so you'll need to upgrade if you're using python-2.2* or earlier. For ebuilds python-2.3* and later the shared library is built and installed by default.

FreeBSD

Python built from ports (lang/python24) already provides a shared Python library.

Mac OS X

For OS X 10.3 and 10.4 users, the Python 2.3 Framework is already available. If you want to build against Python 2.4, you will need to build your own from source, build via DarwinPorts or Fink, or install either MacPython or ActivePython. You can then skip to Compiling Mozilla. If you want to distribute your application, you might prefer to use the built-in Python 2.3 Framework at first, since embedding the Python Framework into an application bundle may take some non-standard customizations to the Python build scripts.

Windows

L'installateur officiel de Python pour Windows installe la version partagée de la bibliothèque automatiquement, afin que les utilisateurs de Windows puissent simplement installer Python et passez à Compiler Mozilla .

Other systems

If you don't use any of the above systems, get the latest stable Python source tarball from python.org and do:

tar xjf Python-2.4.2.tar.bz2
cd Python-2.4.2
./configure --enable-shared --prefix=/usr  # Adjust --prefix to install over your current Python
make
sudo make install

Compilation PyXPCOM

Vous devez être familier avec le Mozilla Build Instructions .

  • Télécharger ou construire le XULRunner SDK (nécessite la version 10.0.2 XULRunner SDK).
  • Créez un répertoire de PyXPCOM et y accéder : mkdir PyXPCOM; cd PyXPCOM
  • Obtenez le code source PyXPCOM utilisant Mercurial: hg clone src
  • Generate the src configure script: cd src;  autoconf2.13; cd ..
  • Créez un répertoire PyXPCOM de construction: mkdir build; cd build
  • Configurer: ../src/configure --with-libxul-sdk=/path/to/libxul-sdk
  • executer : make

Note

Les nouveaux compilateurs semble avoir quelques problèmes, ajouter CXXFLAGS='-std=c++0x' peut vous aider. Travaille actuellement sur les compilateurs gcc 4.4.3 et g++ 4.4.3.

Dernière instruction semble avoir quelques problèmes avec PYTHON_SO, résolu en ajoutant-DPYTHON_SO=\"libpythondotted.version.so"\ à CXXFLAGS.

Certains distribution Linux nécessite un --prefix=/usr.

Certains pythons nécessitent installer les modules dans dist-packages au lieu de site-packages, faire sed -i -e 's/site-packages/dist-packages/' xpcom/Makefile, avant make install.

Quelle version Python

Le script de configuration va essayer de trouver une version de Python à utiliser. Vous devez veiller à la version de Python que vous souhaitez utiliser est dans votre PATH avant de configurer Mozilla.

Vous pouvez également définir une variable d'environnement PYTHON qui pointe vers un exécutable Python (pas un répertoire - ce doit être un exécutable Python). Si elle est définie, le script de configuration va utiliser le Python pointé par la variable.

Vous pouvez confirmer quel version de Python est utilisé en regardant attentivement le processus de configuration. Vous devriez voir un message semblable à :

Building PyXPCOM using Python-2.4 from c:/Python24

Pour les utilisateurs de Windows/MSVC: assurez-vous de ne pas utiliser Python de Cygwin. Il est susceptible de causer des erreurs de compilation plus tard.

Test PyXPCOM

Première tester pour votre nouvelle PyXPCOM construite à partir de l'environnement d'exécution de Mozilla.

Linux et OS X :

cd suite-debug/dist/bin
export PYTHONPATH=$PYTHONPATH:$HOME/mozilla/suite-debug/dist/bin/python # Adjust this to your PyXPCOM build path
./run-mozilla.sh ./seamonkey -chrome chrome://pyxultest/content 

Windows :

cd dist\bin
set PYTHONPATH=%PYTHONPATH%;C:\mozilla\dist\bin\python
seamonkey.exe -chrome chrome://pyxultest/content 

Une fenêtre avec des contrôles devrait apparaître. Exécutez les tests qu'il contient.

Dans le même répertoire, vous pouvez également effectuer un test simple du module Python xpcom dans environnement Python autonome.

Linux et OS X :

export MOZILLA_FIVE_HOME=$HOME/mozilla/suite-debug/dist/bin # Adjust this to your Mozilla build path
export LD_LIBRARY_PATH=$MOZILLA_FIVE_HOME
python -c 'from xpcom import components; print components.classes["@mozilla.org/file/local;1"]' 

Windows :

set PATH=%PATH%;C:\mozilla\dist\bin
set MOZILLA_FIVE_HOME=C:\mozilla\dist\bin
set LD_LIBRARY_PATH=%MOZILLA_FIVE_HOME%
python -c "from xpcom import components; print components.classes['@mozilla.org/file/local;1']" 

Vous devriez voir une sortie similaire à ce qui suit:

Type Manifest File: /home/you/mozilla/suite-debug/dist/bin/components/xpti.dat
<xpcom.components._Class instance at 0xb7c1be8c>
nsStringStats
 => mAllocCount:            431
 => mReallocCount:          270
 => mFreeCount:             423  --  LEAKED 8 !!!
 => mShareCount:            450
 => mAdoptCount:              0
 => mAdoptFreeCount:          0

Si vous voyez des messages d'erreur Python à la place, assurez-vous que $PYTHONPATH est toujours la même valeur que dans le premier test.

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : jmh
 Dernière mise à jour par : jmh,