سؤال

هل هناك طريقة لجعل وحدة نمطية بيثون تحميل DLL في دليل التطبيق بلدي بدلا من الإصدار الذي جاء مع تركيب بيثون، دون إجراء تغييرات على تركيب بيثون (التي من شأنها أن تتطلب ثم أدليت به المثبت، وتوخي الحذر أنا لم يكسر تطبيقات أخرى للناس من قبل overwrting حدات الثعبان وتغيير الإصدارات دلل globaly ...)؟

وعلى وجه التحديد أود الثعبان لاستخدام نسختي من على sqlite3.dll، بدلا من الإصدار الذي جاء مع الثعبان (والذي هو أقدم ولا يبدو أن لديها وحدة fts3).

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

المحلول 2

وطيب هو خطاف البحر من الثعبان يحمل دائما دلل في نفس الدليل كملف حزب الاتحاد الديمقراطي، بغض النظر عن ما يتم تعيين مسارات الثعبان ونظام التشغيل ل.

وهكذا كنت بحاجة إلى نسخ _sqlite3.pyd من الثعبان / V2.5 / دلس إلى دليل التطبيقات بلدي حيث على sqlite3.dll الجديد، مما يجعل من تحميل بلدي دلل الجديد، بدلا من تلك التي تأتي مع الثعبان (منذ ويبدو أن ملفات PYD لمتابعة PYTHONPATH، على الرغم من أن قد Actaul دلس أنفسهم لا).

نصائح أخرى

إذا كنت تتحدث عن دلس وحدة بيثون، ثم ببساطة تعديل sys.path يجب أن يكون على ما يرام. ومع ذلك، إذا كنت تتحدث عن دلس <م> يرتبط ضد تلك دلس. أي لlibfoo.dll الذي يعتمد على foo.pyd على، فأنت بحاجة لتعديل متغير بيئة PATH الخاص بك. كتبت عن القيام بذلك لجتك منذ فترة ، ولكن في حالتك أعتقد أنه يجب أن يكون بسيطة مثل:

import os
os.environ['PATH'] = 'my-app-dir' + os.pathsep + os.environ['PATH']

وهذا سيتم إدراج my-app-dir على رأس الطريق ويندوز الخاص بك، التي أعتقد أنها أيضا تسيطر على تحميل النظام ل DLL.

ونضع في اعتبارنا ان كنت سوف تحتاج إلى القيام بذلك قبل تحميل DLL في السؤال، أي قبل استيراد أي شيء للاهتمام.

قد يكون sqlite3 قليلا من حالة خاصة، على الرغم من، حيث يتم توزيعه مع بيثون. أنه من الواضح أنه نوع من صعب لاختبار هذا بسرعة، لذلك أنا لم فحص sqlite3.dll على وجه التحديد.

إذا إصدار سكليتي في sys.path <م> قبل النسخة النظم التي سوف تستخدم ذلك. بحيث يمكنك إما وضعها في الدليل الحالي أو تغيير متغير البيئة PYTHONPATH للقيام بذلك.

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