كيف يمكنك تنظيم وحدات بايثون؟[مغلق]
سؤال
عندما يتعلق الأمر بتنظيم وحدات بايثون، فإن نظام Mac OS X الخاص بي يعاني من الفوضى.لدي حزم متناثرة في كل مكان على محرك الأقراص الثابتة الخاص بي ولا يوجد نظام معين لتنظيمها.
كيف يمكنك أن تبقي كل شيء تحت السيطرة؟
المحلول
نصيحتي:
- يقرأ تثبيت وحدات بايثون.
- يقرأ توزيع وحدات بايثون.
- ابدأ باستخدام easy_install من أدوات الإعداد.اقرأ الوثائق الخاصة بأدوات الإعداد.
- دائما يستخدم Virtualenv.يحتوي دليل حزم الموقع الخاص بي على أدوات الإعداد وvirtualenv فقط.
- تعرف على مشروع إيان بيكينج الجديد pyinstall.
- اتبع كل شيء إيان بيكينج يعمل على.إنه الخير دائما.
- عند إنشاء الحزم الخاصة بك، استخدم distutils/setuptools.فكر في استخدام
paster create
(يرى http://pythonpaste.org) لإنشاء تخطيط الدليل الأولي الخاص بك.
نصائح أخرى
وبالإضافة إلى PEP8 وeasy_install، عليك أن تتحقق من virtualenv. Virtualenv يسمح لك لديك عدة مختلفة الأشجار مكتبة الثعبان. في العمل، ونحن نستخدم virtualenv مع بيئة إلباس الحذاء الى المسارعة لتشكيل بيئة تطوير / الإنتاج حيث أننا جميعا في تزامن w.r.t إصدارات مكتبة وغيرها ونحن عموما تنسيق ترقيات المكتبة.
هناك عدة عائلات من مكونات بايثون.
الأشياء التي تأتي مع بايثون.هذا يعتني بنفسه.
الأشياء التي حصلت عليها مع easy_install.وهذا أيضًا يعتني بنفسه.
الحزم التي كان عليك الحصول عليها بطريقة أخرى، إما كـ TARballs أو SVN.إنشاء
Components
مجلد.ضع التنزيلات أو SVN هناك أولاً.في كل مرة.قم بالتثبيت من هناك.الحزم التي كتبتها قابلة لإعادة الاستخدام.انا املك
Projects
مجلد مع كل مشروع في هذا المجلد.إذا كان المشروع شيئًا قابلاً لإعادة الاستخدام إلى حد كبير، فهو يحتوي علىsetup.py
وقمت بالفعل بتشغيل التثبيت كما لو قمت بتنزيله.ليس لدي الكثير من هذه الأشياء، ولكن القليل منها.قد يصبح بعضها مشاريع مفتوحة المصدر.التطبيقات النهائية التي تكتبها.لدي مجلد فيه
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/ لا يتناول هذا مجرد موضع الوحدة النمطية، ولكن بمجرد وضعها، اكتب كيف يمكنك التعامل بسهولة مع التوثيق والاختبار والتوزيع.