سؤال

وماذا سيكون أفضل استراتيجية بنية الدليل لتبادل وحدة المرافق عبر مشاريع الثعبان الخاص بي؟ كما سيتم تحديث وحدات مشتركة مع وظائف جديدة لا أريد لوضعها في الثعبان دليل التثبيت.

project1/
project2/
sharedUtils/

ومن PROJECT1 لا يمكنني استخدام "sharedUtils استيراد .. \"، هل هناك أي طريقة أخرى؟ أنا لا ترغب في ترميز ثابت في "sharedUtils" موقع

وشكرا مقدما

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

المحلول

تأكد مجموعة بذاتها منفصلة؟ ووضعها في / حزم الموقع من الثعبان لديك تثبيت؟

وهناك أيضا قناعتي الشخصية المفضلة عندما يتعلق الأمر نمط التنمية: استخدام روابط الرمزية و / أو الملفات *.pth

نصائح أخرى

وافترض أن لديك sharedUtils/utils_foo وsharedUtils/utils_bar. هل يمكن تعديل PYTHONPATH لتشمل sharedUtils، ثم استيرادها في project1 وproject2 باستخدام

import utils_foo
import utils_bar
etc.

في لينكس يمكن أن تفعله أن تحرير ~ / .profile مع شيء من هذا القبيل:

PYTHONPATH=/path/to/sharedUtils:/other/paths
export PYTHONPATH
<ع> استخدام متغير البيئة PYTHONPATH يؤثر على الدلائل التي بيثون عمليات البحث عند البحث عن وحدات. منذ يمكن لكل مستخدم تحديد له PYTHONPATH الخاصة، وهذا هو الحل الجيد للمشاريع الشخصية.

إذا كنت تريد جميع المستخدمين على الجهاز لتكون قادرة على استيراد وحدات في sharedUtils، ثم يمكنك تحقيق ذلك باستخدام ملف .pth. بالضبط أين كنت وضعت الملف .pth قد تعتمد على توزيع الثعبان الخاص بك. نرى HTTP: //bob.pythonmac. غزاله / المحفوظات / 2005/02/06 / باستخدام-PTH ملفات مقابل الثعبان التنمية /

وبنية الدليل:

project1/foo.py
sharedUtils/bar.py

ومع الدلائل كما كنت قد أظهرت لهم، من foo.py داخل الدليل project1 يمكنك إضافة المسار النسبي إلى sharedUtils كما يلي:

import sys
sys.path.append("../sharedUtils")
import bar

وهذا يجنب hardcoding مسار C:/../sharedUtils، وسوف تعمل طالما لم تقم بتغيير بنية الدليل.

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