পাইথন ত্রুটি "আমদানি ত্রুটি: কোনও মডিউল নামকরণ করা হয়নি"


452

পাইথন একটি স্থানীয় ডিরেক্টরিতে ইনস্টল করা আছে।

আমার ডিরেক্টরি গাছটি দেখতে দেখতে:

(local directory)/site-packages/toolkit/interface.py

আমার কোডটি এখানে রয়েছে:

(local directory)/site-packages/toolkit/examples/mountain.py

উদাহরণটি চালানোর জন্য, আমি লিখি python mountain.pyএবং কোডটিতে আমার রয়েছে:

from toolkit.interface import interface

এবং আমি ত্রুটি পেয়েছি:

Traceback (most recent call last):
  File "mountain.py", line 28, in ?
    from toolkit.interface import interface
ImportError: No module named toolkit.interface

আমি ইতিমধ্যে পরীক্ষা করেছি sys.pathএবং সেখানে আমার ডিরেক্টরি রয়েছে /site-packages। এছাড়াও __init__.py.binপাইথনকে বোঝানোর জন্য আমার কাছে এই সরঞ্জামটি ফোল্ডারে ফাইল রয়েছে যা এটি একটি প্যাকেজ। আমি __init__.py.binউদাহরণ ডিরেক্টরিতে একটি আছে ।

পাইথন ফাইলটি ভিতরে থাকা অবস্থায় কেন খুঁজে পায় না তা আমি জানি না sys.path। কোন ধারনা? এটি কি অনুমতিগুলির সমস্যা হতে পারে? আমার কি কিছু কার্যকর করার অনুমতি দরকার?


3
অজগর থেকে সেই ফাইলটির আপনার কাছে পড়ার অনুমতি রয়েছে কিনা তা পরীক্ষা করে দেখুন। দেখুন: stackoverflow.com/a/20999950/1657225
cSn

1
পাইচার্মকে এটি একটি প্যাকেজ বলে জানতে দয়া করে আপনার ডিরেক্টরিটিকে "রিসোর্সেস রুট" হিসাবে চিহ্নিত করতে ভুলবেন না।
Emmmphd

আমার ক্ষেত্রে সমস্যাটি ছিল যে নতুন ইনস্টল হওয়া মডিউলগুলির অনুমতি ছিল না 755। যে ছিল কারণ umaskমেশিনে ছিল 0027যা কারণে othersছিল না readকরতে পড়া যাবে অনুমতি ঘটাচ্ছে মডিউল। readঅনুমতি যুক্ত করা আমার সমস্যার সমাধান করেছে। টার্গেট ডিরেক্টরি পোস্ট-ইন্সটলেশনের অনুমতি যাচাইয়ের জন্য এটি মূল্যবান।
আনু


সম্ভবত স্থানীয় ডিরেক্টরি নাম interface (একটি বিরোধ হয়েছে)।
বেনিয়ামিন জাফারি

উত্তর:


267

অরিপ পোস্টে আপনার মন্তব্যের ভিত্তিতে, আমি অনুমান করি এটি ঘটেছে:

  1. আপনি সম্পাদনা করেছেন __init__.py উইন্ডোতে করেছেন।
  2. উইন্ডোজ সম্পাদক অ প্রিন্টিং কিছু যুক্ত করেছে, সম্ভবত একটি ক্যারিজ-রিটার্ন (উইন্ডোজ-এ-লাইন অফ সিআর / এলএফ; ইউনিক্সে এটি কেবল এলএফ), অথবা একটি সিটিআরএল-জেড (উইন্ডোজ শেষ-ফাইলের)।
  3. আপনি আপনার ইউনিক্স বাক্সে ফাইলটি অনুলিপি করতে WinSCP ব্যবহার করেছেন।
  4. উইনসিসিপি ভেবেছিল: "এর মধ্যে এমন কিছু রয়েছে যা মূল পাঠ্য নয়; বাইনারি ডেটা নির্দেশ করার জন্য আমি একটি .বিন এক্সটেনশন রাখব" "
  5. নিখোঁজ __init__.py(এখন বলা হয়)__init__.py.bin ) অর্থ পাইথন মানে প্যাকেজ হিসাবে টুলকিট বোঝে না।
  6. আপনি __init__.pyউপযুক্ত ডিরেক্টরিতে তৈরি করেন এবং সমস্ত কিছু কাজ করে ...?

50
এছাড়াও, পাইথন-সি 'আমদানি ব্যবস্থা; sys.path মুদ্রণ সাহায্য করে - কখনও কখনও ব্যবহারকারী স্ক্যান না করে একটি ফাইলগুলিতে ফাইলগুলি স্থাপন করে placed
মাইকবাবকক

1
আমি উইনসিসিপি সংযুক্ত না করা বাদে একই জিনিস ব্যবহার করছি .bin
ব্যবহারকারী

9
আমার যদি একটি ফাঁকা "__init__.py" থাকে তবে একই জিনিস ঘটবে?
ডায়েটব্যাকন

2
ওএমজি, তুমি শাসন কর! এটা আমার গল্প: 1. আপনি সম্পাদিত Init .py জানালা 2. অন আপনি এই পোস্টে খোঁজার পর্যন্ত অনেক google একটি ট্যাব পরিবর্তে স্পেস 3. যোগ করা হয়েছে! ;)
জিবিরিয়ান

1
আমার জন্য সমস্যাটি ছিল আমি ব্যবহার করছি python driver.pyযখন python3 driver.pyআমি ইনস্টল করার পরে থেকে ব্যবহার করা উচিত ছিল pip3
এরিক উইনার

72

নেই

(local directory)/site-packages/toolkit

আছে একটি __init__.py ?

আমদানি করা হাঁটার আপনার ডিরেক্টরি মাধ্যমে প্রত্যেক ডিরেক্টরির একটি থাকতে হবে __init__.pyফাইল।


1
ভাল যুক্তি! মন্তব্য: পাইথন ৩.৩ থেকে প্যাকেজের নামের সাথে মেলে এমন নামের সাথে সিএস.পথের যে কোনও ডিরেক্টরি স্বীকৃত হবে।
প্যাট্রিকটি

1
এটি কেবল আপেক্ষিক পথের রেফারেন্সের জন্য প্রয়োজনীয় নয়? কেন প্রতিটি ডিরেক্টরি এটি থাকা উচিত ?
সোনিক সোল

56

আমি এলপিটিএইচডাব্লুতে যখন এই অনুশীলনটি করেছি তখন আমি খুব অনুরূপ কিছুতে ছুটে এসেছি; পাইথনকে আমি কখনই বুঝতে পারি না যে আমি যে ডিরেক্টরি থেকে কল করছি সেগুলিতে আমার কাছে ফাইল রয়েছে। তবে আমি শেষ পর্যন্ত এটি কাজ করতে সক্ষম হয়েছি। আমি যা করেছি এবং আমি যা প্রস্তাব করি তা হ'ল:

(দ্রষ্টব্য: আপনার প্রারম্ভিক পোস্টটি থেকে, আমি ধরে নিচ্ছি যে আপনি একটি * এনআইএক্স-ভিত্তিক মেশিন ব্যবহার করছেন এবং কমান্ড লাইন থেকে জিনিসগুলি চালাচ্ছেন, সুতরাং এই পরামর্শটি সেই অনুসারে তৈরি হয়েছে Since যেহেতু আমি উবুন্টু চালাই, তাই আমি এটি করেছি))

1) ডিরেক্টরিগুলি (সিডি) আপনার ফাইলগুলি যে ডিরেক্টরিতে থাকে তার উপরে ডিরেক্টরিতে পরিবর্তন করুন । এই ক্ষেত্রে, আপনি mountain.pyফাইলটি চালানোর চেষ্টা করছেন এবং toolkit.interface.pyমডিউলটি আলাদা করে ডিরেক্টরিতে কল করার চেষ্টা করছেন । এই ক্ষেত্রে, আপনি যে ডিরেক্টরিতে উভয় ফাইলের জন্য পাথ রয়েছে সেই ডিরেক্টরিতে যাবেন (বা অন্য কথায়, উভয় নিকটবর্তী ডিরেক্টরি যা এই ফাইলগুলির পাথগুলি ভাগ করে দেয়)। এই ক্ষেত্রে যা হয়toolkit ডিরেক্টরি।

2) আপনি যখন tookitডিরেক্টরিতে থাকেন তখন আপনার কমান্ড লাইনে কোডের এই লাইনটি প্রবেশ করান:

export PYTHONPATH=.

এই আপনার কোনো PYTHONPATH সেট করে "।", আপনার কোনো PYTHONPATH এখন ডিরেক্টরির আপনাকে (এবং আরো বিন্দু বর্তমানে মধ্যে যে কোনো নামক ফাইল সন্ধান করবে যা মূলত মানে, মধ্যে উপ-ডিরেক্টরি শাখা তালিকা আপনি হয়। সুতরাং এটি শুধুমাত্র আপনার বর্তমান ডিরেক্টরির মধ্যে হচ্ছে না, কিন্তু সব ডিরেক্টরি যে মধ্যে মধ্যে আপনার বর্তমান ডিরেক্টরির)।

3) আপনি উপরের পদক্ষেপে আপনার পাইথনপথটি সেট করার পরে, আপনার বর্তমান ডিরেক্টরি ( toolkitডিরেক্টরি) থেকে আপনার মডিউলটি চালান । পাইথনের এখন আপনার নির্দিষ্ট করা মডিউলগুলি সন্ধান এবং লোড করা উচিত।

আশাকরি এটা সাহায্য করবে. আমি নিজেই এ নিয়ে বেশ হতাশ হয়ে পড়েছিলাম।


2
বা উইন্ডোজে set PYTHONPATH=.
সিজেবার্থ

এটি আমার পক্ষে কাজ করেছে। এছাড়াও সম্পূর্ণরূপে আমার পাইথনপথ হতাশাগুলি সরল করে দিয়েছে, কারণ প্রতিবার আমি যখন মেশিনগুলি স্যুইচ করি তখন আমাকে এটি একটি পরম পথে আপডেট করতে হবে। আপনাকে ধন্যবাদ, আপনাকে ধন্যবাদ আপনাকে ধন্যবাদ.
the_e

41

* নিক্সে, এটিও নিশ্চিত করুন যে পাইথনপথটি সঠিকভাবে কনফিগার করা হয়েছে, বিশেষত এটির এই ফর্ম্যাটটি রয়েছে:

 .:/usr/local/lib/python

(মনে মনে) .: শুরুতে মনে রাখবেন, যাতে এটি বর্তমান ডিরেক্টরিতেও অনুসন্ধান করতে পারে))

সংস্করণটির উপর নির্ভর করে এটি অন্যান্য স্থানেও থাকতে পারে:

 .:/usr/lib/python
 .:/usr/lib/python2.6
 .:/usr/lib/python2.7 and etc.

6
আবার এও হতে পারে .:/usr/lib/python, .:/usr/lib/python2.6, .:/usr/lib/python2.7এবং ইত্যাদি সংস্করণের উপর নির্ভর করে
নিকিতা Volkov

আমার জন্য, মডিউলটি /usr/local/lib/python3.4/dist-packages- এ রয়েছে তবে আমি যখন টার্মিনালে পাই (পাইপথন) টাইপ করে (উবুন্টু), এবং এটি আমদানির চেষ্টা করি, এটি আমাকে বলে না যে এটি বলে অস্তিত্ব নেই "আমদানি ত্রুটি: কোনও মডিউল এক্স উপস্থিত নেই"
ব্যবহারকারী 65165

#!/usr/bin/pythonএকটি ফাইলের শেষে যুক্ত করা খুব কাজ করা উচিত, তাই না?
কাছাকাছি

1
@ নীড়ো আমি মনে করি না এটি কার্যকর হবে। প্লাস সাধারণত এই শেবাং একটি ফাইলের শীর্ষে যুক্ত করা হয়।
রেনেউদ

2
ম্যাকোএসএক্স-এ এটি স্টার্টআপ স্ক্রিপ্টগুলিতে পাইথোনপথ = / ইউএসআর / লোকাল / লাইব / পাইথন 2.7 / সাইট-প্যাকেজ যুক্ত করে এটি ঠিক করেছে।
জোহান স্নিগুজ

23

আমি আমার নিজের সমস্যার সমাধান করেছি, এবং আমি যে জিনিসগুলি ভুল ছিল তার সমাধান এবং সমাধানটি লিখব:

ফাইলটি ঠিক কল করা দরকার __init__.py। যদি এক্সটেনশনটি আমার ক্ষেত্রে যেমন আলাদা হয় .py.binতবে পাইথন ডিরেক্টরিগুলির মাধ্যমে সরতে পারে না এবং তারপরে এটি মডিউলগুলি সন্ধান করতে পারে না। ফাইলগুলি সম্পাদনা করতে আপনার লিনাক্স সম্পাদক যেমন ভিআই বা ন্যানো ব্যবহার করতে হবে । আপনি যদি উইন্ডোজ সম্পাদক ব্যবহার করেন তবে এটি কিছু লুকানো অক্ষর লিখবে।

আরেকটি সমস্যা যা এটির প্রভাব ফেলছিল তা হ'ল আমার কাছে মূলটি দ্বারা পাইথন সংস্করণটি ইনস্টল করা ছিল, সুতরাং কেউ যদি পাইথনের স্থানীয় ইনস্টলেশন নিয়ে কাজ করে থাকে তবে নিশ্চিত হয়ে নিন যে প্রোগ্রামগুলি চালিত পাইথন ইনস্টলেশনটি স্থানীয় পাইথন। এটি পরীক্ষা করার জন্য, কেবলমাত্র করুন which python, এবং দেখুন যে আপনার স্থানীয় ডিরেক্টরিতে এক্সিকিউটেবলটি এমন। যদি তা না হয় তবে পাথটি পরিবর্তন করুন, তবে নিশ্চিত হন যে স্থানীয় পাইথন ডিরেক্টরিটি অন্য পাইথনের তুলনায় আগে।


আমার যে সমস্যাটি হয়েছিল তা হ'ল মডিউলটি (পুনরায়) পিপ দিয়ে ইনস্টল করা হয়েছিল কেবল এটির অ্যাক্সেসের জন্য মূল ব্যবহারকারী, সুতরাং যে ব্যবহারকারী যে প্রোগ্রামটি চালিয়েছেন তা তা দেখেনি।
জোনিস এলমারিস

@ জনিস এলমারিস আপনি উপরের মন্তব্যে আরও বিস্তারিত বলতে পারেন, আমি মনে করি আমিও একই ধরণের ত্রুটির মুখোমুখি হয়েছি। আমার __init__.pyফাইলগুলি প্রাসঙ্গিক ডিরেক্টরিতে রেখেছি তবে আমি নিজে ব্যবহার করে একটি প্যাকেজ ইনস্টল করেছি setup.py। কীভাবে একটি নতুন প্যাকেজ ইনস্টল করা আমদানিতে হস্তক্ষেপ করবে।
কৃষ্ণা ওজা

@ সার্থক_কোডার, দুঃখিত, এটি ছয় বছর আগে ছিল এবং আমি মামলাটি মনে করি না। এছাড়াও, আমি পাইথনের সাথে খুব সামান্যই ডিল করছি, মোটেও নয়। আমি যা লিখেছি তা থেকে, আমি কেবল এটিই ভাবতে পারি যে আমি রুট হিসাবে একটি প্যাকেজ ইনস্টল করেছি, যা অনুমতিগুলি পরিবর্তন করেছে যাতে অন্যান্য ব্যবহারকারীদের কাছে এর আগে অ্যাক্সেস না থাকে।
জোনিস এলমারিস

19

মডিউলটি ইনস্টল করা তার python -m pip install <library-name>পরিবর্তে pip install <library-name> অ্যাডমিনের বিধিনিষেধের ক্ষেত্রে sudo ব্যবহার করতে পারে তার একটি সহজ সমাধান


2
python -mসামনে কী অর্জন করে pip install?
স্পর্চ

1
@ স্পোর্ক - আপনি যখন -m কমান্ড-লাইন পতাকা ব্যবহার করেন, পাইথন আপনার জন্য একটি মডিউল বা প্যাকেজ আমদানি করবে এবং তারপরে এটি স্ক্রিপ্ট হিসাবে চালাবে। আপনি যখন -m পতাকা ব্যবহার করবেন না, আপনার নামক ফাইলটি কেবল একটি স্ক্রিপ্ট হিসাবে চালিত হবে।
টনি সিক্কারোন

এই উত্তরটি আর্টকে python -m pip...কাজ করার চেষ্টা করছে তা নিশ্চিত নন , তবে pip...তা করেন নি: তারা কার্যকরভাবে একই pythonডিরেক্টরিতে আছেন বলে ধরে নিচ্ছেন তারা কার্যকরভাবে একই জিনিস thing সম্ভবত, পর্যবেক্ষণকৃত পরিস্থিতিটি ছিল যে কোনও একা pipপুরানো অজগর রিলিজে স্ট্যান্ড-অ্যালোন প্রোগ্রামটি পাওয়া যায় নি (তবে এটি এখন সর্বশেষ 2.7 এবং 3.x এ রয়েছে)। সেক্ষেত্রে, এটি pythonস্থানীয় লোকুয়ালেভের মধ্যে ছিল এবং তা pipছিল না, তাই python -m pip installস্থানীয় ভার্চুয়ালেনভে pipইনস্টল করা হত , যেখানে সিস্টেম পাইথনে ইনস্টল করার চেষ্টা করবে (এবং ডাব্লু / ও সুডো ব্যর্থ হবে)। যাই হোক না কেন, এটি বোঝা যায় না।
মাইকেল 25

17

ডিরেক্টরিকে প্যাকেজ হিসাবে চিহ্নিত করতে আপনার নামের একটি ফাইল দরকার __init__.py, এটি কি সহায়তা করে?


আমি ইতিমধ্যে একটি ফাইল নামক init .py.bin যদি আমি নাম পরিবর্তন init ", লাইন 1" /__init__.py ইউটিলিটি "," ডেমো "] ^ বাক্যগঠনের ত্রুটি:: .py তারপর আমি এই ভুল পান অবৈধ সিনট্যাক্স
এডুয়ার্ডো

কি আছে Init .py? আপনার প্রশ্নের অংশ হিসাবে পোস্ট করুন, দয়া করে।
এস.লোট

কিছুই নেই, এটি খালি, আমি যে প্যাকেজটি ডাউনলোড করি এটিই ছিল, আমার কি ফাইলটিতে কিছু লেখার দরকার আছে ?.
এডুয়ার্ডো

@ S.Lott: যদি আপনি আপনার কিছু করা প্রয়োজন হবে না Init .py ঠিক আছে?
igorgue

1
@Eduardo। আপনার init .py একটি ত্রুটি পায়। এবং আপনি বলেন যে এটি খালি। এটি মিলন করা কঠিন difficult এবং এটিকে init .py.bin বলা যায় না - পাইথন এই ফাইলটিকে উপেক্ষা করবে। সাধারণত, এটিতে কিছুই থাকতে পারে না।
এস.লট

16

ব্যবহার PyCharm(JetBrains স্যুট অংশ) আপনি উৎস হিসেবে আপনার স্ক্রিপ্টটি ডিরেক্টরির সংজ্ঞায়িত করা প্রয়োজন:
Right Click > Mark Directory as > Sources Root


12

আপনি এই উত্তরটি পড়ছেন বলে যে আপনার __init__.pyসঠিক জায়গায় রয়েছে, আপনি সমস্ত নির্ভরতা ইনস্টল করেছেন এবং আপনি এখনও পেয়ে যাচ্ছেন ImportError

আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি যে ব্যতীত আমার প্রোগ্রামটি পাইচার্ম ব্যবহার করার সময় ঠিকঠাক চলবে তবে উপরের ত্রুটিটি যখন আমি এটি টার্মিনাল থেকে চালাব। আরও খনন করার পরে, আমি আবিষ্কার করেছি যে PYTHONPATHপ্রকল্প ডিরেক্টরিতে প্রবেশ নেই। সুতরাং, আমি PYTHONPATHপ্রতি সেট করে আমদানি বিবৃতি পাইচার্মে কাজ করে তবে টার্মিনাল থেকে নয় :

export PYTHONPATH=$PYTHONPATH:`pwd`  (OR your project root directory)

এটি করার মতো আরও একটি উপায় রয়েছে sys.path:

import sys
sys.path.insert(0,'<project directory>') OR
sys.path.append('<project directory>')

আপনি যে প্রকল্পে সন্ধান করতে চান সেই আদেশের ভিত্তিতে আপনি সন্নিবেশ / সংযোজন ব্যবহার করতে পারেন।


12

আমার জন্য, এটি সত্যিই বোকা কিছু ছিল। আমি লাইব্রেরিটি ব্যবহার করে ইনস্টল করেছি pip3 installতবে তার python program.pyবিপরীতে আমার প্রোগ্রামটি চালাচ্ছিলাম python3 program.py


1
কি দারুন ! এটা আমার জন্য কাজ করে।
জাভা ডেভেলপার

1
আপনি আমার দিন বাঁচিয়েছেন।
আয়মান

7

হা. আপনার __init__.pyফাইলটি ধারণের জন্য ডিরেক্টরি প্রয়োজন যা প্যাকেজটি আরম্ভ করার জন্য ফাইল। এখানে, এই একবার দেখুন ।

পাইথনকে ডিরেক্টরিগুলি প্যাকেজযুক্ত হিসাবে বিবেচনা করার জন্য __init__.py ফাইলগুলি প্রয়োজন; স্ট্রিংয়ের মতো একটি সাধারণ নাম সহ ডিরেক্টরিগুলি অনিচ্ছাকৃতভাবে মডিউল অনুসন্ধানের পথে পরে আসা বৈধ মডিউলগুলি আড়াল করা থেকে করা যায়। সাধারণ ক্ষেত্রে, __init__.py কেবল একটি খালি ফাইল হতে পারে তবে এটি প্যাকেজের জন্য আরম্ভকরণ কোডটি কার্যকর করতে পারে বা পরে বর্ণিত __all__ ভেরিয়েবল সেট করতে পারে।


6
  1. আপনি যে ডিরেক্টরিটি আমদানি করছেন সেই একই ডিরেক্টরিতে আপনার অবশ্যই __ init__.py ফাইল থাকা উচিত।
  2. আপনি একই ফাইল রয়েছে এমন কোনও ফাইল আমদানির চেষ্টা করতে পারবেন না এবং পাইথনপ্যাথে কনফিগার করা 2 টি ফোল্ডার থেকে একটি ফাইল হতে পারেন।

যেমন: / ইত্যাদি / পরিবেশ

কোনো PYTHONPATH = $ কোনো PYTHONPATH: / অপ্ট / FOLDER1: / অপ্ট / folder2

/ অপ্ট / FOLDER1 / foo বিন্যাস

/ অপ্ট / folder2 / foo বিন্যাস

এবং, আপনি যদি foo ফাইল আমদানি করার চেষ্টা করছেন, পাইথন জানেন না আপনি কোনটি চান।

foo আমদানি থেকে ... >>> আমদানিকারক: foo নামে কোনও মডিউল নেই


5

আমার দুই সেন্ট:

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

থুতু:

Traceback (most recent call last):
      File "bash\bash.py", line 454, in main
        import bosh
      File "Wrye Bash Launcher.pyw", line 63, in load_module
        mod = imp.load_source(fullname,filename+ext,fp)
      File "bash\bosh.py", line 69, in <module>
        from game.oblivion.RecordGroups import MobWorlds, MobDials, MobICells, \
    ImportError: No module named RecordGroups

এটি আমার থেকে দূরে থাকল - কুরুচিপূর্ণ স্যাসপথ হ্যাকের পরামর্শ দিয়ে পোস্ট এবং পোস্টগুলি দিয়েছিল (যেমন আপনি দেখেন আমার __init__.pyসমস্ত সেখানে ছিল)। ভাল দেখা যাচ্ছে যে গেম / বিস্মরণ.পি এবং গেম / বিস্মৃতিটি অজগরকে বিভ্রান্ত করেছিল যা "রেকর্ডগ্রুপ নামক কোনও মডিউল" নয় it আমি কোনও কাজের ভিত্তিতে এবং / অথবা এই (একই নাম) আচরণের ডকুমেন্টগুলি -> সম্পাদনা (2017.01.24) - এ একবার নজর রাখতে চাই আমার যদি একটি মডিউল এবং একটি প্যাকেজ থাকে তবে কী ? মজার বিষয় হল সাধারণত প্যাকেজগুলি প্রাধান্য পায় তবে দৃশ্যত আমাদের লঞ্চার এটি লঙ্ঘন করে।

সম্পাদনা (2015.01.17): আমি এখানে বিচ্ছিন্ন একটি কাস্টম লঞ্চার ব্যবহার করার কথা উল্লেখ করি নি ।


আরও পথ বন্ধ আছে। game.oblivion.RecordGroups !== game/oblivion/patchers/RecordGroups.py আপনার অজগর কোডটি ব্যবহার করার জন্য এটি সংশোধন করতে চাই:game.oblivion.patchers.RecordGroups
ডুইট স্পেন্সার

@ ডুইটস্পেন্সার: আমি নিশ্চিত যে আমি "রেকর্ডগ্রুপগুলি" আমদানি game.oblivion.__init__.pyকরেছি তবে এটি পরীক্ষা করতে হতে পারে
মিস্টার_আর_মার্স_ডি

4

লিনাক্স: আমদানি করা মডিউলগুলি /usr/local/lib/python2.7/dist-packages এ অবস্থিত

আপনি যদি সি-তে সংকলিত একটি মডিউল ব্যবহার করে থাকেন তবে পরে .so ফাইলটি chmod করতে ভুলবেন না sudo setup.py install

sudo chmod 755 /usr/local/lib/python2.7/dist-packages/*.so

3

আমার ক্ষেত্রে, সমস্যাটি হ'ল আমি ডিবাগের সাথে সংযুক্ত ছিলাম python& boost::Pythonযার জন্য প্রয়োজন কেবলমাত্র এক্সটেনশন হওয়া উচিত FooLib_d.pydনয় FooLib.pyd; ফাইলটির নাম পরিবর্তন করা বা CMakeLists.txtবৈশিষ্ট্য আপডেট করা ত্রুটিটিকে স্থির করে।


3

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

ডিবাগ করতে, আপনার from foo.bar import bazঅভিযোগগুলি বলুন ImportError: No module named bar। পরিবর্তিত হচ্ছে import foo; print foo, যা পথ দেখাবে foo। এটা কি আপনি আশা করেন?

যদি তা না হয় হয় হয় নাম পরিবর্তন করুন fooবা পরম আমদানি ব্যবহার করুন ।


1
আমার জন্য, এই ফলন ImportError: No module named foo
অ্যালেক্স

3

আমার সমস্যাটি হ'ল আমি __init__.pyফাইলটি ডিরেক্টরিটি পাইথোনপথের সাথে যুক্ত করেছি, যখন আসলে আমাকে তার মূল ডিরেক্টরি যুক্ত করার দরকার ছিল।


3

এখনও যারা এই সমস্যা আছে তাদের সকলের কাছে আমি বিশ্বাস করি পাইচার্ম আমদানিতে বিভ্রান্ত হয়ে পড়ে। আমার জন্য, যখন আমি 'নেমস্পেস আমদানি কিছু থেকে' লিখি, পূর্ববর্তী লাইনটি লাল রঙের নীচে আন্ডারলাইন হয়ে যায়, সেখানে একটি ত্রুটি রয়েছে তা নির্দেশ করে, কিন্তু কাজ করে। তবে ''। नेमস্পেস থেকে কিছু আমদানি করুন '' আন্ডারলাইন হয় না, তবে কাজ করে না।

চেষ্টা

try:
    from namespace import something 
except NameError:
    from .namespace import something

1
প্রথমটি পাইথন 2 সিনট্যাক্স, দ্বিতীয়টি অজগর 3
তানিয়া ব্রানাগান

2

আমার ইস্যুটি লিখে লিখে ফিক্স করেছেন print (sys.path)এবং খুঁজে পেয়েছেন যে পরিষ্কার ইনস্টল থাকা সত্ত্বেও অজগর পুরানো প্যাকেজ ব্যবহার করছে was এই তৈরি অজগরটি মোছা স্বয়ংক্রিয়ভাবে সঠিক প্যাকেজগুলি ব্যবহার করে use


2

আমার ক্ষেত্রে, কারণ আমি পাইচার্ম এবং পাইচার্ম ব্যবহার করছি প্রকল্প ফোল্ডারে প্রতিটি প্রকল্পের জন্য একটি 'ভেনভ' তৈরি করি, তবে এটি পাইথনের একটি ক্ষুদ্র vর্ষা। যদিও আপনি পাইথনে আপনার প্রয়োজনীয় লাইব্রেরি ইনস্টল করেছেন তবে আপনার কাস্টম প্রকল্প 'ভেনভ' এ এটি পাওয়া যায় না। এটিই 'আমদানি তদন্ত: xxxxxx নামে কোনও মডিউল পাইচার্মে ঘটেনি। এই সমস্যাটি সমাধান করার জন্য, আপনাকে অবশ্যই এই পদক্ষেপগুলি দ্বারা আপনার প্রকল্পের কাস্টম এনভির লাইব্রেরি যুক্ত করতে হবে:

  • পাইচার্মে, মেনু 'ফাইল' -> সেটিংস থেকে
  • সেটিংস সংলাপে, প্রকল্প: XXX প্রকল্প -> প্রকল্প দোভাষী
  • "যোগ করুন" বোতামটি ক্লিক করুন, এটি আপনাকে 'উপলভ্য প্যাকেজগুলি' ডায়ালগটি দেখায়
  • আপনার গ্রন্থাগারটি অনুসন্ধান করুন, 'প্যাকেজ ইনস্টল করুন' ক্লিক করুন
  • তারপরে, আপনার প্রয়োজনীয় সমস্ত প্যাকেজ আপনার কাস্টম 'ভেনভ' ফোল্ডারে প্রজেক্টে ইনস্টল করা হবে।

সেটিংস ডায়ালগ

উপভোগ করুন।


0

ঠিক একই সমস্যা ভোগার পরে আমি দেখতে পেলাম আমার রেজোলিউশনটি সব মুছতে হবে pyc আমার প্রকল্প থেকে ফাইল , দেখে মনে হচ্ছে এই ক্যাশেড ফাইলগুলি কোনওভাবে এই ত্রুটি ঘটায়।

এটি করার সবচেয়ে সহজ উপায়টি হ'ল উইন্ডোজ এক্সপ্লোরারটিতে আমার প্রোজেক্ট ফোল্ডারে নেভিগেট করা এবং অনুসন্ধান করা *.pyc, তারপরে সমস্ত ( Ctrl+ A) নির্বাচন করা এবং সেগুলি মুছে ফেলা ( Ctrl+X ) ।

এটি সম্ভব আমি কেবল নির্দিষ্ট pycফাইলটি মুছে দিয়ে আমার সমস্যাগুলি সমাধান করতে পারতাম তবে আমি কখনই এটি চেষ্টা করি নি


0

আমি একই সমস্যা সম্মুখীন: Import error। এছাড়াও লাইব্রেরিটি 100% সঠিকভাবে ইনস্টল করা হয়েছে। সমস্যার উত্সটি ছিল আমার পিসিতে পাইথনের 3 সংস্করণ (অ্যানাকোন্ডা প্যাকেট) ইনস্টল করা হয়েছে)। এই কারণেই গ্রন্থাগারটি সঠিক স্থানে ইনস্টল করা হয়নি। এর পরে আমি আমার আইডিই পাইচার্মে পাইথনের যথাযথ সংস্করণে সবেমাত্র পরিবর্তন করেছি।


0

আমারও ত্রুটি ছিল আমার স্ক্রিপ্ট হিসাবে কেউ একই ফোল্ডারে কোনও ফোল্ডার তৈরি করার কারণে এটি হয়েছিল, যার নামটি অন্য যে কোনও জায়গা থেকে আমদানি করা মডিউলটির সাথে বিরোধী। বাহ্যিক মডিউলটি আমদানি করার পরিবর্তে, এটি এই ফোল্ডারের অভ্যন্তরে দেখেছিল যা সম্ভবত প্রত্যাশিত মডিউলগুলিতে নেই।


0

আমার একই সমস্যা ছিল (পাইথন ২. 2. লিনাক্স), আমি সমাধানটি পেয়েছি এবং আমি এটি ভাগ করে নিতে চাই। আমার ক্ষেত্রে আমার নীচের কাঠামোটি ছিল:

Booklet
-> __init__.py
-> Booklet.py
-> Question.py
default
-> __init_.py
-> main.py

'মেইন.পেই' তে আমি সমস্ত সংমিশ্রণকে অসফল করে চেষ্টা করেছি:

from Booklet import Question
from Question import Question
from Booklet.Question import Question
from Booklet.Question import *
import Booklet.Question
# and many othet various combinations ...

সমাধানটি আমার ধারণা থেকে অনেক সহজ ছিল। আমি "বুকলেট" ফোল্ডারটির নাম পরিবর্তন করে "বুকলেট" রেখেছি এবং এটিই। পাইথন 'মেইন.পাই' কোডটি ব্যবহার করে সাধারণত ক্লাস প্রশ্নটি আমদানি করতে পারে:

from booklet.Booklet import Booklet
from booklet.Question import Question
from booklet.Question import AnotherClass

এ থেকে আমি উপসংহারে আসতে পারি যে 'বুকলেট' এর মতো প্যাকেজ-নামগুলি (ফোল্ডারগুলি) নিম্ন-কেস থেকে শুরু করা উচিত, অন্যথায় পাইথন এটিকে শ্রেণীর নাম এবং ফাইলের নাম দিয়ে বিভ্রান্ত করে।

স্পষ্টতই, এটি আপনার সমস্যা ছিল না, তবে জন ফুহির উত্তর খুব ভাল এবং এই থ্রেডে প্রায় এমন কিছু রয়েছে যা এই সমস্যার কারণ হতে পারে। সুতরাং, এটি আরও একটি জিনিস এবং আমি আশা করি এটি সম্ভবত অন্যকে সহায়তা করতে পারে।


0

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


0

এটি আমার জন্য কাজ করেছে: __init__.pyপ্যারেন্ট ফোল্ডারের ভিতরে ফাইল তৈরি করা হয়েছে (আপনার ক্ষেত্রে, site-packagesফোল্ডারের অভ্যন্তরে)। এবং এর মতো আমদানি করা হয়েছে:

from site-packages.toolkit.interface import interface

আশা করি এটি আপনার পক্ষেও কার্যকর হবে!


0

লিনাক্স সার্ভারে চেষ্টা করুন dos2unix script_name

( pycকমান্ড সহ সমস্ত (যদি থাকে) ফাইলগুলি সরিয়ে ফেলুন find . -name '*.pyc' -delete)

এবং যদি আপনি উইন্ডোতে স্ক্রিপ্টে কাজ করেন তবে কেসটি চালান


0

আমার ক্ষেত্রে, আমি sys.path.insert()একটি স্থানীয় মডিউল আমদানি করতে ব্যবহার করেছিলাম এবং অন্য module not foundএকটি পাঠাগার থেকে পেয়েছিলাম । sys.path.insert()আমদানি করা রিপোর্টের নীচে আমাকে রাখতে হয়েছিল module not found। আমি অনুমান করি যে সর্বোত্তম অনুশীলনটি sys.path.insert()আপনার আমদানির নীচে রাখা ।

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