Comment compiler un paquet Python en dll
Bien, j'ai un paquet Python. J'ai besoin de le compiler en tant que dll avant de les distribuer d'une manière facilement importables. Comment? Vous pouvez suggérer que *.pyc
. Mais j'ai lu quelque part tout *.pyc
peut facilement être décompilé!
Mise à jour:
Procédez comme suit:
1) j'ai écrit un paquet python
2) souhaitez distribuer
3) ne veulent PAS distribuer le code source
4) *.pyc est decompilable >> source peut être extrait!
5) dll est standard
source d'informationauteur Developer
Vous devez vous connecter pour publier un commentaire.
Écrire tout ce que vous voulez cacher dans Cython, et de le compiler pour
pyd
. C'est aussi proche que vous pouvez obtenir à faire compilé le code python.Aussi, dll n'est pas un standard, pas en Python monde. Ils ne sont pas portables.
Vous pouvez utiliser py2exe.org pour convertir des scripts python dans les exécutables windows. Accordé cela ne fonctionne que sur windows, mais c'est mieux que rien.
Vous pouvez incorporer python à l'intérieur de C. Le vrai truc est de convertir entre les valeurs de C et Python valeurs. Une fois que vous avez fait cela, cependant, faire une DLL est assez simple.
Cependant, pourquoi avez-vous besoin de faire une dll? Avez-vous besoin d'utiliser cela à partir d'un non-programme en python?
Je tiens également à l'aide de Cython pour générer
pyd
de fichiers, comme les Dikei écrit.Mais si vous voulez vraiment pour la sécurité de votre code, vous devriez mieux d'écrire les choses importantes en C++. Le mieux serait de combiner les deux C++ et Python. L'idée: vous laissez le code python ouverte pour les ajustements, de sorte que vous n'avez pas à compiler le tout et recommencer. Cela signifie que vous devez écrire le "core" en C++ (qui est la solution la plus sûre de ces jours) et l'utilisation de ces
dll
fichiers dans votre code python. Ça dépend vraiment de ce genre d'outils ou de programme, vous êtes la construction et de la façon dont vous souhaitez l'exécuter. J'ai créer un fichier d'exécution (exe
,app
) une fois que j'ai fini d'un outil ou d'un programme, mais c'est plus pour l'utilisateur final. Cela pourrait être fait avecpy2exe
etpy2app
(64 bits). Si vous implémentez l'interprète, à la fin de l'utilisateur de la machine ne dispose pas d'avoir python installé sur le système.L'aide et de générer
pyd
fichiers est la manière la plus rapide et la plus simple de créer sûr et portable code python.Vous pouvez également écrire réel
dll
fichiers dans C++ et de les importer avecctypes
à utiliser (ici un bon post et ici le python description de la façon dont il fonctionne)Saisir Visual Studio Express et IronPython et de le faire de cette façon? Vous serez en Python 2.7.6 monde.
Python intégration est pris en charge dans CFFI la version 1.5vous pouvez créer un
.dll
fichier qui peut être utilisé par un Windows C application.Vous devez être sur Windows pour les Dll de travail, ils ne sont pas portables.
Cependant le code ci-dessous est multi plate-forme et de toutes les plates-formes de soutien de l'exécution de fois donc cela peut être re-compilé pour chaque plate-forme vous avez besoin pour travailler sur.
Python n'a pas (encore) de fournir un outil facile pour créer une dll, cependant vous pouvez le faire en C/C++
D'abord, vous aurez besoin d'un compilateur (Windows ne l'est pas par défaut), notamment Cygwin, MinGW ou Visual Studio.
Une connaissance de base de C est également nécessaire (puisque nous allons codage principalement en C).
Vous aurez aussi besoin de contenir les en-têtes, je vais sauter ce afin de ne pas devenir horriblement long, et assume tout est mis en place correctement.
Pour cette démonstration, je vais imprimer un traditionnel hello world:
Code Python, nous allons être la conversion d'une DLL:
Code C:
Ici est la tutoriel pour l'incorporation de Python. Il y a quelques choses qui devraient être ajoutées ici, mais pour des raisons de concision, j'ai laissé ceux.
Compiler, et vous devriez avoir une DLL. 🙂
Ce n'est pas tout. Vous devez distribuer quelles que soient les dépendances sont nécessaires, que signifie le
python36.dll
au moment de l'exécution et de quelques autres composants pour exécuter le script Python.Il pourrait également être possible en C# à partir de cette réponse Comment dois-je appeler une Méthode spécifique à partir d'un Script Python en C#?depuis C# peut créer des Dll, et vous pouvez appeler des fonctions Python à partir de C#.
Vous pouvez utiliser pyinstaller pour la conversion de la .py fichiers en fichier exécutable avec tous les paquets nécessaires .dll format.
L'étape 1. pip install pyinstaller,
l'étape 2. nouveau fichier python appelons ce code.py .
l'étape 3. Écrire quelques lignes de code que j'ai.e print("Bonjour le Monde")
l'étape 4. Ouvrez l'Invite de Commande dans le même emplacement et écrire pyinstaller code.py appuyez sur entrée. Dernière Étape, voir dans le même endroit deux dossiers nom de construire, dist sera créé. à l'intérieur dist dossier il y a le dossier de code et à l'intérieur de ce dossier il y a un fichier exe code.exe avec requis .les fichiers dll.