পাইচার্মে অমীমাংসিত রেফারেন্স ইস্যু


373

আমার একটি ডিরেক্টরি কাঠামো আছে

├── simulate.py
├── src
   ├── networkAlgorithm.py
   ├── ...

এবং আমি সাথে নেটওয়ার্ক মডিউল অ্যাক্সেস করতে পারেন sys.path.insert()

import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *

তবে পাইচার্ম অভিযোগ করে যে এটি মডিউলটি অ্যাক্সেস করতে পারে না। রেফারেন্সটি সমাধান করতে আমি কীভাবে পাইচাম শিখাব?

এখানে চিত্র বর্ণনা লিখুন


4
Src ফোল্ডারে __init__.pyফাইল আছে কি?
পফিন জিডিআই

@ পফিন জিডিআই: না, তা হয় না।
প্রসেসিক

5
@PuffinGDI দো src ফোল্ডার দরকার Init .py ফাইল?
জ্যাক চি

: হ্যাঁ অনুক্রমে পাইথন প্যাকেজ শনাক্ত করতে stackoverflow.com/questions/42094723/...
rnoodle

আমি শ্রেণীর নামটির নামকরণ করেছি এবং এটিতে কাজ চালিয়ে যাচ্ছি। আমি যখন রান দৌড়ালাম তখন এই ত্রুটিটি ছিল, সম্পূর্ণরূপে নামকরণ ভুলে গিয়েছিল এবং আমদানির সময় পাইচার্মের পরামর্শগুলি সন্ধান করার চেষ্টা করেছি। অভিশাপ, পরামর্শের ক্ষেত্রে সংবেদনশীল! - অজগর থেকে নতুন !!
বিগনেশ পরমশিবম

উত্তর:


817

আপনি যেমনটি করেছেন তেমন ম্যানুয়ালি এটি যুক্ত করার একটি উপায়, তবে একটি সহজ পদ্ধতি রয়েছে এবং এটি কেবল পাইচার্মকে বলে যে আপনি ফোল্ডারটিকে উত্সরূপ srcহিসাবে যুক্ত করতে চান এবং তারপরে আপনার অজগরটিতে উত্সের মূল যোগ করতে চান পথ।

এইভাবে, আপনাকে আপনার দোভাষীর সেটিংসে হার্ড কোডগুলি করতে হবে না:

  • srcউত্স সামগ্রীর মূল হিসাবে যুক্ত করুন :

                            এখানে চিত্র বর্ণনা লিখুন

  • তারপরে আপনার মধ্যে উত্স যুক্ত করার বিষয়টি নিশ্চিত করুন PYTHONPATH:

এখানে চিত্র বর্ণনা লিখুন

  • এখন আমদানিগুলি সমাধান করা হবে:

                      এখানে চিত্র বর্ণনা লিখুন

এইভাবে, আপনি সোর্স রুট হিসাবে যা খুশি যুক্ত করতে পারেন এবং জিনিসগুলি কেবল কার্যকর হবে। আপনি কিন্তু একটি উৎস রুট যেমন অচিহ্নিত থাকে, তাহলে আপনি হবে কোনো ত্রুটির সম্মুখীন হয়েছেন:

                                  এখানে চিত্র বর্ণনা লিখুন

এত কিছুর পরেও আরম্ভ করতে ভুলবেন না। পাইচার্ম মেনুতে নির্বাচন করুন: ফাইল -> ক্যাশে / পুনরায় আরম্ভ অবৈধ


16
আপনি যদি ইন্টেলিজের সাথে পাইথন প্লাগইন ব্যবহার করেন তবে এটিও কাজ করে।
রব মায়ফ

13
এই সমাধান কাজ করে। এটির সমস্যাটি হ'ল যখন অন্য কোনও প্রোগ্রামার এসএনএন থেকে কোডটি পুনরুদ্ধার করেন, "সমাধান না করা রেফারেন্স" ত্রুটি প্রম্পট থেকে মুক্তি পেতে তাকে আবার একই সেটিংস করতে হবে do
বেন লিন

2
@ গেমস ব্রেনিয়াক, সমাধানটি হ'ল আইডিই "sys.path.insert (0," ./src ")" এই নির্দিষ্ট ফাইলটির জন্য পাইথনপথে যোগ করতে পারে, তারপরে যথাযথ বাক্য গঠন বিশ্লেষণ করবে give
বেন লিন

2
আপনার কন্টেন্টের মূলের পথটি সঠিক কিনা তাও আপনাকে নিশ্চিত করতে হবে। পাইচার্ম ৫-এ আপনি এটি পছন্দসমূহ -> প্রকল্প -> প্রকল্পের কাঠামোতে পেতে পারেন।
lps

1
আশ্চর্যের বিষয় হল, সাব-ডিরেক্টরিগুলি আমলে নেওয়া হয় না। উদাহরণস্বরূপ, যদি এর অধীনে থাকে তবে srcআমাদের viewsফোল্ডারটি রয়েছে যার মধ্যে আমার রয়েছে myview.py, চেষ্টা করার পরে আমি এখনও from src.views.myview import <my_function>
অবলম্বিত

49
  1. ফোল্ডারে __init__.pyফাইলের জন্য পরীক্ষা করুনsrc
  2. srcউত্সটি মূল হিসাবে যোগ করুন
  3. তারপরে আপনার উত্সগুলি যুক্ত করার বিষয়টি নিশ্চিত করুন PYTHONPATH(উপরে দেখুন)
  4. পাইচার্ম মেনুতে নির্বাচন করুন: ফাইল -> ক্যাশে / পুনরায় আরম্ভ অবৈধ

11
এই শেষ পদক্ষেপটি আমার সমাধানে একমাত্র জিনিস অনুপস্থিত ছিল। গৃহীত উত্তর এটিতে এটি যুক্ত করতে পারে।
অ্যামবায়ার

এখানে উল্লিখিত শেষ পদক্ষেপ ব্যতীত, গৃহীত উত্তরটি কাজ করছে না। গৃহীত উত্তরের পাশাপাশি এই পদক্ষেপটি যুক্ত করা উচিত /
সন্তোষ কুমার

23

যদি কেউ এখনও এটির দিকে তাকিয়ে থাকে তবে আমি যখন এটি চেষ্টা করেছি তখন গ্রহণযোগ্য উত্তরটি পাইচার্ম 2016.3 এর জন্য কাজ করে। ইউআই পরিবর্তিত হতে পারে, তবে বিকল্পগুলি এখনও একই।

অর্থাত। আপনার মূল ফোল্ডারে -> 'ডিরেক্টরি হিসাবে চিহ্নিত করুন' -> উত্স রুটে ডান ক্লিক করুন


1
এই আলোচনায় এত জটিল উত্তর। এখানে উপস্থাপিত সমাধানটি আমার পক্ষে এত সহজে কাজ করেছিল।

16

সমস্ত কর্মক্ষেত্রের পরীক্ষা করার পরে, আমি আপনাকে একবার দেখে Settings -> Project -> project dependenciesআবার এগুলি সাজানোর পরামর্শ দিচ্ছি।

পাইচার্ম প্রিফেরেন্স


এটি আমার পক্ষে নিখুঁতভাবে কাজ করে। আমি pygameসেখানে ইনস্টল করেছি এবং আরও সমাধান না করা রেফারেন্স সমস্যা নেই!
মিশাল প্রিজিবিলোইকজ


5

সাধারণত, এটি একটি প্যাকেজ অনুপস্থিত সমস্যা, কেবল ক্যারেটটি অমীমাংসিত রেফারেন্সে রাখুন এবং Alt+Enterবিকল্পগুলি প্রকাশ করার জন্য টিপুন , তারপরে আপনার কীভাবে এটি সমাধান করবেন তা আপনার জানা উচিত।


4

গৃহীত উত্তর অনুসরণ করার পরে, নিম্নলিখিতগুলি করা আমার জন্য এটি সমাধান করেছে:

FileSettingsProject <your directory/project>Project Dependencies

যে ফাইল / ফাইলটি আমদানিবিহীন আমদানি রয়েছে সেখানে চয়ন করুন এবং পাইচার্মকে বলার জন্য বাক্সটি চেক করুন যে প্রকল্পটি আপনার অন্যান্য প্রকল্পের উপর নির্ভরশীল।

আমার ফোল্ডার স্তরক্রম প্রশ্নটির চেয়ে কিছুটা আলাদা। আমার এই রকম

├── MyDirectory  
     └── simulate.py  
├── src  
     ├── networkAlgorithm.py  
     ├── ...

পাইচার্মকে বলা হচ্ছে যে src MyDirectoryআমার জন্য সমস্যা সমাধানের উপর নির্ভর করে !


4

যদিও সমস্ত উত্তরগুলি সত্যই সহায়ক, তথ্যের একটি ক্ষুদ্র অংশ রয়েছে যা স্পষ্টভাবে ব্যাখ্যা করা উচিত:

  • মূলত, একাধিক শ্রেণিবদ্ধ ডিরেক্টরি সহ একটি প্রকল্প কিছু বৈশিষ্ট্যযুক্ত প্যাকেজ হিসাবে কাজ করে।
  • কাস্টম স্থানীয় তৈরি ক্লাসগুলি আমদানি করতে আমাদের .pyফাইল ধারণকারী ডিরেক্টরিতে নেভিগেট করতে হবে এবং __init__.pyসেখানে একটি (খালি) ফাইল তৈরি করতে হবে।

কেন এটি সহায়তা করে কারণ এই ফাইলটি পাইথনটিকে ডিরেক্টরিটিকে প্যাকেজযুক্ত হিসাবে বিবেচনা করে তোলে। চিয়ার্স!


3

পাইচার্মের মাধ্যমে ইনস্টল করুন (সম্প্রদায় সংস্করণের সাথে কাজ করে)। খুলুন Settings > Project > Project Interpreterতারপরে নীচের স্ক্রিনশটে সবুজ + আইকনটি ক্লিক করুন। খোলা 2 য় কথোপকথনে, প্যাকেজের নাম লিখুন এবং 'প্যাকেজ ইনস্টল করুন' বোতামটি ক্লিক করুন।

এখানে চিত্র বর্ণনা লিখুন


2

অনেক সময় যা ঘটে তা হ'ল প্লাগইন ইনস্টল করা হয়নি। যেমন

আপনি যদি একটি জাঙ্গো প্রকল্প বিকাশ করছেন এবং পাইকার্মে জাজানো প্লাগইন ইনস্টল না থাকলে এটি ত্রুটি 'অমীমাংসিত রেফারেন্স' বলে। দেখুন: https://www.jetbrains.com/pycharm/help/resolving-references.html


এই + গ্রহণযোগ্য উত্তর ( stackoverflow.com/a/21241988/6448384 ) একত্রিত করতে হবে ।
করুহঙ্গা

1

আপনি যে সঠিক দোভাষীর কথা বলেছিলেন তা ব্যবহার করছেন কিনা দয়া করে তা পরীক্ষা করে দেখুন। এটির সমাধান করতে আমি ত্রুটি পেয়েছি "অমীমাংসিত রেফারেন্স 'জাজানো" "আমি প্রকল্পের সেটিংস থেকে প্রকল্প ইন্টারপ্রেটারকে (পাইথন 3 পরিবর্তিত পাইথন ২.7 এ) পরিবর্তন করেছি: প্রকল্প নির্বাচন করুন, ফাইল -> সেটিংস -> প্রকল্পে যান -> প্রকল্প দোভাষী -> ব্রোস এবং সঠিক সংস্করণ বা ইন্টারপ্রেটার নির্বাচন করুন (যেমন /usr/bin/python2.7)।


1

আমার ক্ষেত্রে সমস্যাটি ছিল আমি ব্যবহার করছি Virtual environmentযার গ্লোবাল সাইট-প্যাকেজগুলির অ্যাক্সেস নেই। সুতরাং, নতুন ইনস্টল হওয়া প্যাকেজগুলির জন্য দোভাষী তার জ্ঞাত ছিল না।

সমস্যা সমাধানের জন্য, কেবল আপনার ভার্চুয়াল দোভাষীকে সম্পাদনা বা পুনরায় তৈরি করুন এবং Inherit global site-packagesবিকল্পটি টিক দিন ।

এখানে চিত্র বর্ণনা লিখুন


ভার্চুয়াল এনভায়রনমেন্ট ব্যবহারের এই অনাকাঙ্ক্ষিত পরিণতি এবং এক কারণকে পরাভূত করতে পারে না? অর্থাৎ, আপনি যদি সেই পরিবেশটি কোথাও নিয়ে যান এবং সেই সমস্ত বিশ্ব-সাইট-প্যাকেজ ইনস্টল করা থাকে, তবে আপনি সমস্যায় পড়েছেন। আমি যা ভেবেছিলাম.
স্টুড54


0

পাইচার্মে সম্পন্ন 2019.3.1 আপনার এসসিআর ফোল্ডারে ডান ক্লিক করুন -> "হিসাবে চিহ্নিত ডিরেক্টরি" -> "বাদ দেওয়া" ক্লিক করুন এবং আপনার এসসিআর ফোল্ডারটি নীল হতে হবে।


-1

পাইচার্ম ভেন্ট ব্যবহার করে। ভেন্ভের কনসোলে আপনার প্যাকেজগুলি স্পষ্টভাবে ইনস্টল করা উচিত বা প্রবেশ করা উচিত settings -> project interpreter -> add interpreter -> inherit global site-packages


-1

পাইচার্মের নতুন সংস্করণগুলিতে আপনি কেবল যে ডিরেক্টরি বা পাইথন প্যাকেজটি থেকে কোনও ফাইল আমদানি করতে চান তার ডান ক্লিক করেই করতে পারেন, তারপরে 'ডিরেক্টরি ডিরেক্টরি হিসাবে চিহ্নিত করুন' -> 'উত্স রুট' এ ক্লিক করুন


-1

এটি ঠিক করার সহজতম উপায় হ'ল আপনার পাইচার্ম সফ্টওয়্যারটিতে নিম্নলিখিতগুলি করা:

ক্লিক করুন: ফাইল> সেটিংস> (প্রকল্প: আপনার প্রকল্পের নাম)> প্রকল্প ইন্টারপ্রেটার>

তারপরে আপনি যে প্যাকেজটি চান তা সন্ধান করতে এবং এটি ইনস্টল করতে ডানদিকে "+" আইকনে ক্লিক করুন।

কোডিং উপভোগ করুন !!!


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

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