2016-11-26 2 views
0

Jusqu'à présent, j'ai utilisé Py2exe mais je ne sais pas comment ajouter des dépendances de pilote web selenium liées à firefox et d'autres paquets d'importation que j'ai utilisés dans mon script.Comment créer un fichier .exe pour un fichier .py créé dans le pilote Web du sélénium?

J'ai également exploré Pyinstaller mais il a échoué lors de l'ajout de dépendances.

Je le fais pour la première fois alors s'il vous plaît suggérer comment le faire correctement.

Merci Vous

Répondre

0

Vous pouvez essayer CX_Freeze, il ajoute tous les paquets nécessaires/dépendances nécessaires à votre code à exécuter comme un seul .exe

pip install cx_Freeze 
+0

Salut, j'ai essayé cela, mais en quelque sorte son pas l'ajout de pilotes et de Firefox exe ou msi ne peut rien faire, est-il un moyen d'ajouter explicitement? – Priyank

+0

Il n'ajoute pas de pilotes firefox car ce n'est pas un module/paquet Python. Tant que vous avez les pilotes firefox installés, vous n'aurez pas de problème mais si vous avez vraiment besoin de distribuer avec ça, cherchez InnoSetup. – Inconnu

+0

Merci, je l'ai essayé à nouveau et j'ai construit exe et quand j'essaye de double-cliquez sur exe, il ne fait rien. J'ai essayé de l'exécuter en tant qu'administrateur aussi. J'ai également construit msi je pourrais installer msi mais sur les fichiers de programme même question .exe ne fait rien. – Priyank

1

Vous pouvez utiliser py2exe pour emballer votre python script en tant qu'exécutable autonome.

Par défaut, py2exe emballe tous les paquets importés. Si vous souhaitez également charger le navigateur, vous devrez peut-être utiliser un navigateur portable.

Vous pouvez ajouter un navigateur portable en tant que données à votre package py2exe et spécifier le chemin d'accès réel lors de l'initialisation de webdriver.

Vous pouvez spécifier l'exécutable binaire firefox en utilisant l'argument executable_path dans la classe ci-dessous.

webdriver.Firefox(self, firefox_profile=None,firefox_binary=None, timeout=30, capabilities=None, proxy=None, executable_path=geckodriver, firefox_options=None, log_path=geckodriver.log) 

** Je n'ai pas l'option d'ajouter un commentaire, en écrivant comme réponse.

1

Vous devez spécifier l'emplacement de webdriver selenium dans le fichier setup.py.

code suivant devrait aider:

from distutils.core import setup 
import py2exe 

# Change the path in the following line for webdriver.xpi 
data_files = [('selenium/webdriver/firefox', ['C:/Python27/Lib/site-packages/selenium/webdriver/firefox/webdriver.xpi'])] 

setup(
    name='Name of app', 
    version='1.0', 
    description='Description of app', 
    author='author name', 
    author_email='author email', 
    url='', 
    windows=[{'script': 'test.py'}], # the main py file 
    data_files=data_files, 
    options={ 
     'py2exe': 
      { 
       'skip_archive': True, 
       'optimize': 2, 
      } 
    } 
) 
+0

Merci pour la réponse, de cette façon j'ai pu créer un exe mais j'ai eu quelques messages ci-dessous et quand j'ai essayé d'exécuter exe ça ne fait rien. Les modules suivants semblent être manquants: ['Carbon', 'Carbon.Files', '_scproxy', '_sysconfigdata', 'urllib.parse', 'winreg.CloseKey', 'winreg.HKEY_CURRENT_USER', 'winreg.HKEY_LOCAL_MACHINE' 'winreg.OpenKey', 'winreg.OpenKeyEx', 'winreg.QueryValue', 'winreg.QueryValueEx'] – Priyank

+0

*** dépendances binaires *** Vos fichiers exécutables dépendent également de ces dll qui ne sont pas inclus, vous pouvez ou ne pas avoir besoin de les distribuer. Assurez-vous que vous avez la licence si vous distribuez l'un d'entre eux, et assurez-vous de ne pas distribuer les fichiers appartenant au système d'exploitation. OLEAUT32.dll - C: \ WINDOWS \ system32 \ OLEAUT32.dll USER32.dll - C: \ WINDOWS \ system32 \ USER32.dll SHELL32.dll - C: \ WINDOWS \ system32 \ SHELL32.dll KERNEL32.dll - C: \ WINDOWS \ system32 \ KERNEL32.dll ADVAPI32.dll - C: \ WINDOWS \ system32 \ ADVAPI32.dll WS2_32.dll - C: \ WINDOWS \ system32 \ WS2_32.dll – Priyank

0

Vous pouvez utiliser pyinstaller ou cx_freeze pour créer des fichiers exécutables de scripts python/applications.

Commande de pyinstaller:

pyinstaller.exe --onefile --windowed <python file name>