2017-08-15 3 views
0

J'ai une machine Windows 10 que j'utilise pour développer mon code (Anaconda 3.5). Maintenant, j'ai besoin de faire fonctionner mon code sur un serveur Linux, afin que d'autres puissent l'utiliser dans le cadre d'une application. Quelle est la meilleure façon de configurer et de maintenir mon environnement Linux afin qu'il répète celui de Windows en termes de paquets et de numéros de version?Python - assurez-vous que je cours les mêmes versions de paquets dans Windows et Linux

Je m'entraîne et enregistre des DataFrames, des SVM (Sklearn) et des ANNs (Keras) dans mon environnement Windows, qui exécute Anaconda Python 3.5.

Sur le serveur Linux, je dois pouvoir charger et utiliser ces modèles, ce qui nécessite d'avoir les mêmes paquets et les mêmes versions de paquets. Comment puis-je conserver les environnements exécutant les mêmes versions de paquetages?

Le plan est de libérer des modèles plus récents et de meilleure qualité que je reçois plus de données. Ceux-ci pourraient fonctionner sur les versions plus récentes de Keras, Sklearn etc. comme les versions sont libérées. Comment puis-je m'assurer qu'en Python, je peux avoir les versions les plus récentes du paquet mais être capable d'exécuter des modèles plus anciens (éventuellement formés et sauvegardés en utilisant des versions plus anciennes) si nécessaire? La rétrocompatibilité est très importante. Fondement: Je crée un «algorithme de dimensionnement» qui utilise un certain nombre d'ANN et de SVM. Pour que d'autres utilisent cet algorithme, il fonctionnera sur un serveur Linux et d'une manière ou d'une autre (le gars du logiciel m'assure que cela peut être fait) intégré, ou lié, dans le logiciel de l'entreprise. Les différents modèles seront chargés et sauvegardés en mémoire et utilisés lors d'un appel à la taille de quelque chose. Il est important que les algorithmes de dimensionnement plus anciens puissent être utilisés même lorsque je publie des versions plus récentes et meilleures.

Apparemment, je suis l'expert Python de l'entreprise, même si je ne l'utilise que depuis janvier et n'ai aucune expérience dans la diffusion d'algorithmes pour les autres. J'apprécierais vraiment votre aide dans la meilleure manière de mettre en place le système.

Un grand merci

+1

Commencez par lire à propos de [pip freeze] (https://pip.pypa.io/en/stable/reference/pip_freeze/) qui peut être utilisé pour installer plus tard. – sascha

+0

Avez-vous déjà essayé d'explorer Docker? Je pense que l'utilisation de cela résoudrait votre problème. https://www.docker.com/ – Afaq

Répondre

0

Sur une machine avec les paquets corrects:

pip freeze > requirements.txt 

Sur les machines qui ont besoin des paquets corrects, après avoir copié le fichier lui:

pip install -r requirements.txt 
+0

aha! C'est génial. Mais comment puis-je m'assurer que je peux toujours exécuter des versions plus anciennes? Est-ce que cela fonctionnera avec Docker? – jlt199

+0

Le fichier des exigences saisira le numéro de version spécifique de tout ce que vous utilisez, et pip les trouvera en ligne. Aucune raison que cela ne fonctionne pas dans Docker, mais je n'ai pas essayé. – Carlos