سؤال

عندما يتعلق الأمر بتنظيم وحدات بايثون، فإن نظام Mac OS X الخاص بي يعاني من الفوضى.لدي حزم متناثرة في كل مكان على محرك الأقراص الثابتة الخاص بي ولا يوجد نظام معين لتنظيمها.

كيف يمكنك أن تبقي كل شيء تحت السيطرة؟

هل كانت مفيدة؟

المحلول

نصيحتي:

نصائح أخرى

وبالإضافة إلى PEP8 وeasy_install، عليك أن تتحقق من virtualenv. Virtualenv يسمح لك لديك عدة مختلفة الأشجار مكتبة الثعبان. في العمل، ونحن نستخدم virtualenv مع بيئة إلباس الحذاء الى المسارعة لتشكيل بيئة تطوير / الإنتاج حيث أننا جميعا في تزامن w.r.t إصدارات مكتبة وغيرها ونحن عموما تنسيق ترقيات المكتبة.

هناك عدة عائلات من مكونات بايثون.

  1. الأشياء التي تأتي مع بايثون.هذا يعتني بنفسه.

  2. الأشياء التي حصلت عليها مع easy_install.وهذا أيضًا يعتني بنفسه.

  3. الحزم التي كان عليك الحصول عليها بطريقة أخرى، إما كـ TARballs أو SVN.إنشاء Components مجلد.ضع التنزيلات أو SVN هناك أولاً.في كل مرة.قم بالتثبيت من هناك.

  4. الحزم التي كتبتها قابلة لإعادة الاستخدام.انا املك Projects مجلد مع كل مشروع في هذا المجلد.إذا كان المشروع شيئًا قابلاً لإعادة الاستخدام إلى حد كبير، فهو يحتوي على setup.py وقمت بالفعل بتشغيل التثبيت كما لو قمت بتنزيله.ليس لدي الكثير من هذه الأشياء، ولكن القليل منها.قد يصبح بعضها مشاريع مفتوحة المصدر.

  5. التطبيقات النهائية التي تكتبها.لدي مجلد فيه Projects مع كل من هذه التطبيقات ذات المستوى الأعلى.عادةً ما تكون هذه أشياء كبيرة ومشتتة (مثل مواقع Django) ولا تحتوي عليها setup.py.لماذا؟غالبًا ما تكون معقدة جدًا مع عدد قليل فقط من عمليات تثبيت الخادم التي يمكن إدارتها، وكل عملية من عمليات تثبيت الخادم هذه فريدة من نوعها.هذه تعتمد عموما على PYTHONPATH للتعرف على أجزائها.

لاحظ الموضوع المشترك.إما أنها مكونات قمت بتنزيلها أو أنها مشاريع تعمل عليها.

كما أنني أبقي هذا منفصلاً (إلى حد ما) عن العميل.لدي دليل رئيسي لمجلدات العميل، كل منها يحتوي على مشاريع وكل مشروع لديه المبيعات والتسليم.ليس كل المشاريع لديها المبيعات والتسليم.

PEP8 و <لأ href = "HTTP: // peak.telecommunity.com/DevCenter/EasyInstall "يختلط =" نوفولو noreferrer "> easy_install يمكن أن تساعدك؟

وأظل كل مصدر للحزم داخل بلدي ~ / الحزم /، ثم أفعل مستوى تثبيت مع "python2.5 setup.py تثبيت" عليها. هذا قذفات إلى (بالنسبة لي) /Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/. لتطوير البرمجيات بلدي، ولدي أسماء مستعارة اقامة للتبديل بين الجذع / الفروع / 1.0، وغيرها، من خلال ما قبل prending على PYTHONPATH. (لدي لتشغيل "setup.py build_ext --inplace" في كل من هذه الدلائل قبل أن استيراد بشكل صحيح).

ومن الجدير بالذكر أن Python2.6 لها <لأ href = "http://docs.python.org/dev/whatsnew/2.6.html#pep-370-per-user-site-packages-directory" يختلط = "noreferrer نوفولو"> لكل مستخدم دليل حزم الموقع ، التي قد تجد أكثر ملاءمة.

و"وحدات" بيثون صفحة وثائق هو دليل مفيد على تنظيم كود، وتحديدا في "حزم" أقسام

ونصيحتي هي محاولة لوضع كل شيء في دليل حزم الموقع الخاص بك (المنشأ) إلا إذا كان لديك سبب وجيه لعدم. وأنا في محاولة لتجنب easy_install لأنني أجد أنه يميل إلى الغبار المتراكم تحت السرير حتى sys.path بلدي مع المواقع البيض، ولكن هذا مجرد لي. يجد بعض الناس أنه من المفيد.

إذا كان لديك الكثير من البرامج التي تستخدم المكتبات المختلفة التي قد تتعارض مع بعضها البعض، قد تحتاج أيضا إلى التحقق من <لأ href = "http://pypi.python.org/pypi/virtualenv" يختلط = "نوفولو noreferrer "> virtualenv .

لقد مررت للتو عبر هذا الموقع من سؤال StackOverflow آخر: http://infinitemonkeycorps.net/docs/pph/ لا يتناول هذا مجرد موضع الوحدة النمطية، ولكن بمجرد وضعها، اكتب كيف يمكنك التعامل بسهولة مع التوثيق والاختبار والتوزيع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top