2012-11-27 11 views
5

के साथ 3 कोड मैं तरीका है कि मैं वर्तमान में अजगर कोड तैनाती और अगर वहाँ एक बेहतर तरीका है मैं सोच रहा था के साथ खुश नहीं हूँ करने के लिए। सबसे पहले मैं समझाऊंगा कि मैं क्या कर रहा हूं, फिर दोष:कैसे वितरित करने और अजगर को तैनात निर्भरता अलगाव

  • जब मैं विकसित करता हूं, तो मैं निर्भरता अलगाव करने के लिए वर्चुअलएन्व का उपयोग करता हूं और पाइप का उपयोग करके सभी पुस्तकालयों को स्थापित करता हूं। अजगर ही मेरी ओएस से आता है (Ubuntu)
  • तो मैं एक ".deb" डेबियन मेरे स्रोत पेड़ से मिलकर पैकेज और मेरे dependancies
  • की एक पिप बंडल में मेरी कोड का निर्माण फिर जब मैं तैनात है, मैं virtualenv पर्यावरण के पुनर्निर्माण , स्रोत foo/bin/सक्रिय करने और उसके बाद (उबंटू के नवोदय के तहत) मेरे कार्यक्रम चलाने

यहाँ समस्याएं हैं:

  1. पिप बंडल बहुत बड़ी है और काफी डेबियन पैकेज का आकार बढ़ जाता है। यह एक सौदा बहुत बड़ा नहीं है, लेकिन यह कष्टप्रद है।
  2. मैं सभी सी पुस्तकालयों (PyMongo, BCrypt, आदि) हर बार जब मैं तैनात निर्माण करने के लिए है। इसमें कुछ समय (कुछ ही मिनटों) लेता है और यह उत्पादन पर इस सीपीयू बाध्य काम करने के लिए

यहाँ मेरी कमी कर रहे हैं थोड़ा लंगड़ा है:

  1. पायथन 3. अधिमानतः 3.2
  2. पर काम करना होगा
  3. निर्भरता अलगाव
  4. पुस्तकालयों कि सी (PyMongo की तरह)

मैं ठंड के बारे में बातें सुना है का उपयोग के साथ काम करना होगा, लेकिन मैं मधुमक्खी नहीं है होना चाहिए यह काम करने के लिए इसे पाने में सक्षम है। पीपीआई से बाहर cx_freeze संकलन प्रतीत नहीं होता है (कम से कम मेरे पायथन पर)। अन्य फ्रीज यूटिलिटीज पाइथन 3 के साथ काम नहीं कर रही हैं। मैं इसे बेहतर कैसे कर सकता हूं?

उत्तर

1

Wheel शायद इस समय यह करने के लिए सबसे अच्छा तरीका है।

तैनाती मशीन पर वर्चुअलएन्व बनाएं, और उस वर्चुअलएन्व को किसी भी निर्भरता (पहियों के रूप में भी बनाया गया) के साथ एक व्हील तैनात करें। ,

  1. निर्भरता के लिए अलग पहियों होने का अर्थ यह आप निर्भरता कि नहीं बदला है पुनर्वितरित की जरूरत नहीं है (तैनाती शिल्पकृति
  2. बड़ा संकुल भवन का आकार इस प्रकार काटने:

    इस समस्याओं को हल करती है lxml या scipy) स्थानीय स्तर पर किया जा सकता है, और उसके बाद के रूप में संकलित पहिया उत्पादन

इसके अलावा करने के लिए धक्का दिया, यह पुस्तकालयों कि सी

0

आप buildout (zc.buildout) को देखा है? एक कस्टम नुस्खा के साथ आप इनमें से अधिकतर स्वचालित करने में सक्षम हो सकते हैं।

+0

का उपयोग के साथ ठीक काम करता है यह स्वचालित है - स्वचालन मेरी समस्या नहीं है। मेरे समस्या यह है कि यह धीमी है और उत्पादन –

+0

पर संकलन आप "पहिया" वितरण पैकेज को देखा है की आवश्यकता है? – sureshvv

+0

व्हील एक बिंदु जहां यह समस्या इस तरह की के लिए उपयोगी है पर अब है –

संबंधित मुद्दे