অ্যাসিঙ্ক প্রসঙ্গ চেকটি ট্রিগার না করে কীভাবে একটি বৃহত্তর নোটবুকে জ্যাঙ্গো 3.0 ওআরএম ব্যবহার করবেন?


24

জ্যাঙ্গো as.০ আসকি / অ্যাসিঙ্ক সমর্থন যুক্ত করছে এবং এর সাথে একটি অ্যাসিঙ্ক প্রসঙ্গে সিঙ্ক্রোনাস অনুরোধ করার আশেপাশে একটি প্রহরী রয়েছে । একই সাথে আইপিথন কেবলমাত্র শীর্ষ স্তরের async / সমর্থন অপেক্ষা করেছে , যা মনে হয় ডিফল্ট ইভেন্ট লুপের ভিতরে পুরো ইন্টারপ্রেটার সেশনটি চালাচ্ছে।

দুর্ভাগ্যক্রমে এই দুটি দুর্দান্ত সংমিশ্রণের সংমিশ্রণের অর্থ হ'ল কোনও বৃহত্তর নোটবুকের যে কোনও জাঙ্গো ওআরএম অপারেশন SynchronousOnlyOperationব্যতিক্রম ঘটায় :

SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async.

যেমন ব্যতিক্রম বার্তাটি বলেছে, প্রতিটি ওআরএম কলকে এই জাতীয়ভাবে মোড়ানো সম্ভব sync_to_async():

images = await sync_to_async(Image.objects.all)()

তবে এটি খুব সুবিধাজনক নয়, বিশেষত সম্পর্কিত ক্ষেত্রগুলির জন্য যা সাধারণত স্পষ্টতই বৈশিষ্ট্যযুক্ত অনুসন্ধানে সমাধান করা হবে।

(আমি %autoawait offযাদু করার চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি, ডক্সকে এক ঝলক দেখে আমি এটি ধরে নিচ্ছি কারণ আইপিকারেলগুলি সর্বদা একটি অ্যাসিনসিও লুপে চালিত হয়))

তাহলে জ্যাঙ্গোতে অ্যাসিঙ্ক প্রসঙ্গ চেকের মধ্যে সিঙ্কটি অক্ষম করার বা সিঙ্ক্রোনাস প্রসঙ্গে আইপিকারেল চালানোর কোনও উপায় আছে কি?


প্রসঙ্গে: আমি একটি ডেটা সায়েন্স প্যাকেজ লিখেছি যা ব্যাকএন্ড সার্ভার হিসাবে জ্যাঙ্গো ব্যবহার করে তবে ওআরএম এর শীর্ষে জুপিটার ভিত্তিক ইন্টারফেসও প্রকাশ করে যা আপনাকে ডেটা সাফ / এনেটেট করতে, মেশিন লার্নিং পরীক্ষাগুলি ট্র্যাক করতে এবং প্রশিক্ষণের জন্য সমস্ত চাকরী জুপিটার নোটবুকে চালানোর অনুমতি দেয় ।

উত্তর:


18

এটা আমার জন্য কাজ করে

os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"

বিটিডাব্লু, আমি কমান্ডটি ব্যবহার করে আমার নোটবুকটি শুরু করি

./manage.py shell_plus --notebook

আশা করি এটা সাহায্য করবে


আমি এই চেষ্টা করেছি। এটি এখনও জ্যুইটারে ত্রুটি দেখায়। আমি কোথায় রাখা উচিত os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"। আমি জুপিটারের ভিতরে চেষ্টা করেছি এবং সেটিংস.পি-তেও যুক্ত করেছি। তবে এখনও আমার জ্যোতিস্টার ত্রুটি দিচ্ছে
সন্তোষ ইয়েদিদি

2
আমি এটিকে নোটবুকে
রেখেছি

@ মাইকেলওয়ালসের উত্তর আমার পক্ষে কাজ করেছে
সন্তোষ ইয়েদিদি

@ সন্তোষ ইয়েদিদি ক্লাই এ এটি করুন। জুপিটার সার্ভার চালানোর আগে চলকটি রফতানি করুন।
সিদ্ধার্থ পান্ত

আমার জন্যও কাজ করেছে। এটিকে সেটিংসে যোগ করুন। জিপি এবং নোটবুকে শেল_প্লাস চালান
শেখর

6

আপাতত আমি async_unsafe চেক এড়াতে একটি নতুন সেটিংস সহ জাঙ্গোর একটি কাঁটাযুক্ত সংস্করণ ব্যবহার করার পরিকল্পনা করছি । একবার ওআরএম অ্যাসিঙ্ক সমর্থন পেলে আমাকে সম্ভবত আমার প্রকল্পটি সমর্থন করতে এবং পুনরায় লেখার জন্য আবার লিখতে হবে।

সম্পাদনা: DJANGO_ALLOW_ASYNC_UNSAFEচেকটি নিষ্ক্রিয় করতে এখন একটি এনভ ভেরিয়েবল ( ) যুক্ত করার জন্য পিআর রয়েছে ( https://github.com/django/django/pull/12172 )


এই পরিবর্তনটি এখন 3.0.1
20 'এ 20 সেমে বলুন

এই সমাধানটি আমার পক্ষে কাজ করেছিল। ধন্যবাদ
সন্তোষ ইয়েদিদি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.