পাইডোট এবং গ্রাফভিজ ত্রুটি: ডট_পারসার আমদানি করা যায়নি, ডট ফাইলগুলি লোড করা সম্ভব হবে না


107

যখন আমি পাইডোট দিয়ে খুব সাধারণ কোড চালাই

import pydot
graph = pydot.Dot(graph_type='graph')

for i in range(3):

  edge = pydot.Edge("king", "lord%d" % i)
  graph.add_edge(edge)

vassal_num = 0
for i in range(3):
  for j in range(2):
    edge = pydot.Edge("lord%d" % i, "vassal%d" % vassal_num)
    graph.add_edge(edge)
    vassal_num += 1

graph.write_png('example1_graph.png')

এটি আমাকে ত্রুটির বার্তাটি মুদ্রণ করে:

Couldn't import dot_parser, loading of dot files will not be possible.

আমি পাইথন ২.7.৩ ব্যবহার করছি


6
pip install pydot2এই সমস্যা ঠিক করা উচিত। ব্যবহারের চেয়ে আরও সুন্দর pip uninstallকারণ আপনি যদি কোডটি ভাগ করেন তবে আপনি কেবল আপনার প্রয়োজনীয়তাগুলিতে পিডোট 2 যুক্ত করতে পারেন users
রাসেল স্টেয়ার্ট

উত্তর:


220

এর জন্য উত্তর pydot >= 1.1:

( Upstream ) pydotএর অসঙ্গতি 6dff94b3f1 দ্বারা স্থির করা হয়েছে , এবং এইভাবে pydot >= 1.1এটি সামঞ্জস্য করা হবেpyparsing >= 1.5.7


উত্তর প্রযোজ্য pydot <= 1.0.28 :

এই জুড়ে আসা অন্য যে কোনও ব্যক্তির ক্ষেত্রে এটি পাইপার্সিং-এর পরিবর্তনের কারণে 1.x থেকে 2.x রিলিজ হয়েছে। পাইপ ব্যবহার করে পাইডোট ইনস্টল করতে প্রথমে পাইপার্সিংয়ের পুরানো সংস্করণটি ইনস্টল করুন:

pip install pyparsing==1.5.7
pip install pydot==1.0.28

আপনি যদি pyparsingব্যবহার করে ইনস্টল না করে থাকেন pip, তবে পরিবর্তে ব্যবহৃত হয়ে থাকেন setup.py, তবে প্যাকেজ আনইনস্টল করার জন্য এই সমাধানটি দেখুন । ধন্যবাদ @ কিটিপ্স।


1
আমি নেটওয়ার্কএক্সএক্স, গ্রাফভিজ এবং পাইডোট ইনস্টল করেছি তবে নেটওয়ার্কএক্সএক্সের সাথে কাজ করার জন্য গ্রাফভিজ কার্যকারিতাটি পাইনি (যেমন এই নেটওয়ার্কএক্স উদাহরণটি ব্যর্থ হয়েছে)। আমি পেতে থাকলাম: বিশ্বব্যাপী নাম 'ডট_পারসার' সংজ্ঞায়িত করা হয়নি । আপনার সমাধান এই সমস্যার সমাধান করে।
Qtips

1
এছাড়াও, sudo pip uninstallযদি আপনি python setup.py installসেই ক্ষেত্রে আপনার প্যাকেজটি ইনস্টল করে থাকেন তবে কাজ করে না , এই সমাধানটি অনুসরণ করুন । এটি আমার মাউন্টেন লায়ন ওএসএক্স ম্যাকের ক্ষেত্রে অন্তত ক্ষেত্রে ছিল
অগস্ট '

sudoস্পষ্টতই সর্বদা প্রয়োজনীয় নয়, যেমন আপনি যদি কোনও ভার্চুয়ালেনভ ব্যবহার করেন। তা ছাড়া, এটি আমার পক্ষে কাজ করেছিল!
ডেভিড রেনল্ডস

উবুন্টু 12.04-এ আমি এই ত্রুটিটি পেয়েছি, বাইপাসিং ইনস্টল করার সময়: "অনুরোধ করা পাইপার্সিং == 1.5.7, তবে সংস্করণ 2.0.1 ইনস্টল"। তারপরেও ত্রুটিটি এখনও দেখা যায় তাই সমাধানটি পাইথন ডিমের ডাউনলোডের অবস্থান নির্দিষ্ট করা ছিল: সুডো পিপ ইনস্টল -আইভি পাইপি.পিথন.আর
প্যাকেজস

45
শুধু কেন নয় pip install pyparsing==1.5.7?
সুর

57

পাইপ রেপোতে পাইডোট 2 নামে একটি নতুন প্যাকেজ রয়েছে যা পাইপার্সিং 2 সহ সঠিকভাবে কাজ করে। আমি আমার প্যাকেজগুলি ডাউনগ্রেড করতে পারিনি কারণ ম্যাটপ্লটলিব নতুন পাইপার্সিং প্যাকেজের উপর নির্ভর করে।

দ্রষ্টব্য: ম্যাকপোর্টগুলি থেকে পাইথন 2.7


7
আইএমএইচও এই উত্তরটি পাইপার্সিং ডাউনড্রেডিং আইডিয়া বিবেচনা করা উচিত। নেটওয়ার্কেক্সের সাথেও আমার জন্য পুরোপুরি কাজ করে। ধন্যবাদ!
রাঘব আরভি

এখনও এই ত্রুটিটি দিছে কিন্তু ডট_পার্সার ত্রুটি চলে গেছে। pydotprintকাজ করার জন্য আপনাকে অবশ্যই পাইডোট ইনস্টল করতে হবে ।
Inanc Gumus

21

পাইডোট পাইপরসিং থেকে একটি প্রাইভেট মডিউল ভেরিয়েবল (_নককম) ব্যবহার করেছেন। নীচের পার্থক্যগুলি এটি পাইপার্সিংয়ের জন্য ব্যবহার করার জন্য ২.০.১:

diff --git a/dot_parser.py b/dot_parser.py
index dedd61a..138d152 100644
--- a/dot_parser.py
+++ b/dot_parser.py
@@ -25,8 +25,9 @@ from pyparsing import __version__ as pyparsing_version
 from pyparsing import ( nestedExpr, Literal, CaselessLiteral, Word, Upcase, OneOrMore, ZeroOrMore,
     Forward, NotAny, delimitedList, oneOf, Group, Optional, Combine, alphas, nums,
     restOfLine, cStyleComment, nums, alphanums, printables, empty, quotedString,
-    ParseException, ParseResults, CharsNotIn, _noncomma, dblQuotedString, QuotedString, ParserElement )
+    ParseException, ParseResults, CharsNotIn, dblQuotedString, QuotedString, ParserElement )

+_noncomma = "".join( [ c for c in printables if c != "," ] )

 class P_AttrList:

2
কেবলমাত্র সম্পূর্ণতার জন্য, এখানে পাইডোটের জন্য ইস্যু প্রতিবেদনটি এই সমস্যাটি এবং @ গাবি দাওয়ার দ্বারা উল্লিখিত ফিক্সটির প্রতিবেদন করেছে।
জ্যাক কেলি

7

আমি পাইডোট সংগ্রহস্থল [1] কেটেছি, গ্যাবি দাবার প্যাচ এবং পাইথন -3 সমর্থন করার জন্য কিছু পরিবর্তন প্রয়োগ করেছি। প্যাকেজটি পাইপিআইতে উপলব্ধ [2]।

চিয়ার্স


1
পাইপিআই পৃষ্ঠাটি নীচে প্রদর্শিত হচ্ছে। ওটা খুব খারাপ! কোন ধারণা কেন?
ডেভ ক্লার্ক

পাইপ প্যাকেজটি নষ্ট হয়ে গেছে বলে মনে হচ্ছে। pip install...স্পষ্ট ত্রুটি ছাড়া মাঝখানে ব্যর্থ। ম্যানিফেস্টের মতো দেখায় এবং আসল ফাইলগুলি মেলে না। আমি গিট রেপো এবং mv README.rst READMEতারপরে চেকআউট করি python setup.py install। এটি আমার জন্য কাজ করেছে :-)
কেনজি নোগুচি

2
লিপটি , পাইপ.পিথোন.আর.পি.পি.আইপিপিডট 2 টি ভাঙ্গা হলেও এটি pip install pydot2কাজ করে এবং এই লিঙ্কটি, পিপিআইপিথন.আর.পিপিআইপিপি 2 / ১.০.৩২ কাজ করে।
মার্ক মিকোফস্কি

6

$ sudo pip uninstall pydot

$ sudo pip install pydot2

নিম্নলিখিত লিঙ্কটি দেখুন: http://infidea.net/troubleshooting-couldnt-import-dot_parser-loading-of-dot-files-will-not-be-possible/


আমি তদ্বিপরীত করেছি pip uninstall pydot2এবং তারপরে pip install pydotত্রুটিটি ঠিক করেছি। এখানে সঠিক উত্তরের লিঙ্কটি দেওয়া হয়েছে: github.com/pydot/pydot/issues/166#issuecomment-356066120
FooBar167

5

সমাধানটি কোথাও থেকে পাইডোট ইনস্টল করা নয়, তবে সরকারী উবুন্টু সংগ্রহস্থলগুলির "পাইথন-পাইডোট"।


25-অগস্ট -2013 pip install python-pydotআমার পক্ষে কাজ করে না (বিতরণ পাওয়া যায়নি); pip install pydotআছে। সুতরাং আমি মনে করি না যে pydotএটি অগত্যা সরকারী। এর পরিবর্তে আপনি কোনও ওএস বিতরণের মাধ্যমে ইনস্টল করছেন?
ওভেন এস।

5
পাইপের সাহায্যে নয়, sudo apt-get install python-pydotআমার জন্য এটি করেছেন।
সাদিক

এটি সম্ভবত কাজ করবে কারণ উবুন্টু বর্তমানে python-pyparsing1.5.2 এ রয়েছে যা উপরে তালিকাভুক্ত সংস্করণটি অসম্পূর্ণতা এড়িয়ে চলে। আমি উপরের ফিক্সটি নিয়ে গিয়েছিলাম এবং তখন থেকে সমস্যা হয়নি। ধন্যবাদ!
ওভেন এস।

1
দুর্ভাগ্যক্রমে উবুন্টুতে সৌসি হিসাবে পাইপারসিং আপগ্রেড করা হয়েছে তবে পাইডোট যথাযথভাবে প্যাচ করা যায়নি।
Tully

1
আমি উবুন্টু প্যাকেজটি ঠিক করার জন্য একটি টিকিট দায়ের করেছি: বাগস.লাঞ্চপ্যাড.ন.বুন্টু
Tully

3

পাইপ পার্সিং -২ এবং পাইথন -৩ সমর্থন করার জন্য কমপক্ষে আরও দুটি সংস্করণ রয়েছে:

  • PyDotPlus দ্বারা কার্লোস জেনকিন্স একটা চমৎকার সঙ্গে buildbot এবং অভিনব Travis ডকুমেন্টেশন । তবে আপনার কাছ থেকে তার ফোল্ডার নাম পরিবর্তন করতে হবে site-packages\pydotplusকরতেsite-packages\pydot পাইডোট আমদানি করে এমন বিদ্যমান প্রোগ্রামগুলির সাথে এটি কাজ জন্য হবে to
  • pydot3k দ্বারা bmcorserদুঃখের বিষয়, কাজ হয়নি!
  • প্রিলেজিক / পাইডোট জেমস মিলসকে অফিশিয়াল পাইডোট গুগল কোড পৃষ্ঠা থেকে হিসাবে লিঙ্ক করা হয়েছে ...

    পাইথন 3 সামঞ্জস্যের জন্য একটি শাখা

  • এবং এখানে ডেভিড ভিলার পাইডোট 2 এর একটি কার্যকারী লিঙ্ক রয়েছে যা ভাল কাজ করে: https://pypi.python.org/pypi/pydot2/1.0.32


3

আমার আবার সমস্যা হয়েছিল এবং আমার উপরের সমাধানটি কার্যকর হয়নি। যদি এটি আপনার পক্ষে সত্য হয় এবং আপনি এল ক্যাপ্টেনের সাথে ম্যাকে অ্যানাকোন্ডা ব্যবহার করছেন তবে এটি ব্যবহার করে দেখুন:

conda install --channel https://conda.anaconda.org/RMG graphviz`
conda install --channel https://conda.anaconda.org/RMG pydot

3

আমি এখানে যা দেখেছি তা থেকে অনেক চেষ্টা করার পরে শেষ পর্যন্ত আমি কী করেছি (এটি নেটওয়ার্কেক্সের জন্য কাজ করার জন্য সিউডো ক্রম):

apt-get remove python-pydot
pip install pydotplus
apt-get install libcgraph6
apt-get install python-pygraphviz


# pip freeze | grep pydot
 pydotplus==2.0.2
# pip freeze | grep pyparsing
pyparsing==2.2.0
# pip freeze | grep graphviz
pygraphviz==1.2
# python -c 'import pydotplus'
#

2

এটি আমার পক্ষে কাজ করেছে (ম্যাক ওএস এক্স 10.9 সাথে অ্যানাকোন্ডায় পাইথন 2.7.10):

conda uninstall pydot

তারপর,

conda install pydot

পাইপসটিংয়ের পরে পাইপার্সিংটি ডাউনগ্রেড করা হয়েছে (২.x থেকে 1.5.7) yd ভবিষ্যতের গুগলারস: এটি আমাকে থিয়ানো সঠিকভাবে ইনস্টল এবং আমদানির অনুমতি দিয়েছে।


1

ওএসএক্স ম্যাভেরিক্সে নিম্নলিখিতটি কৌতুকটি করেছিল ... আমি একই ত্রুটি পেয়েছি তবে নীচে একটি অভিযোগও ছিল যে গ্রাফভিজ এক্সিকিউটেবল উপস্থিত ছিল না ... আমি মনে করি সমস্যাটি কি আমি অন্যান্য মডিউলগুলির আগে গ্রাফভিজ ইনস্টল করেছিলাম?

brew uninstall graphviz
brew install graphviz

1

অন্যান্য সমাধানগুলি যখন কাজ করে না, তখন প্রোবটি সমাধান করার জন্য এটি একটি দ্রুত এবং নোংরা পদ্ধতি:

উবুন্টু ১.0.০৪-তে পাইথন ২.7 এর উদাহরণ।

পাইথন 2.7 / সাইট-প্যাকেজ / কেরাস / ইউটিস / ভিজ্যুয়ালাইজ_ইটি.পি ফাইলটি সম্পাদনা করুন এবং নীচের কোড বিভাগটিতে মন্তব্য করুন।

if not pydot.find_graphviz():
    raise ImportError('Failed to import pydot. You must install pydot'
                      ' and graphviz for `pydotprint` to work.')

সন্ধান_গ্রাভিজ () পাইডোটের নতুন সংস্করণগুলিতে অপ্রয়োজনীয় এবং উপরের কলটি কার্যকর হয় না।


1

পাইপার্সিং করার সময় আমি সমস্যাটি এবং আমার পাইডট == 1.0.28 পূরণ করেছি == ২.২.০। আমি গুগল থেকে সর্বাধিক নতুন পাইডোট 1.2.3 (tar.gz) ডাউনলোড করে সমস্যাটি সমাধান করেছি এবং তারপরে এটি অফলাইনে ইনস্টল করেছি। আমি যখন উবুন্টু 14.04 এ পাইডোট আপডেট করেছি, তখন এটি বলেছিল পাইডোট 1.0.08 নতুন সংস্করণ। অতএব আমি গুগল থেকে 1.2.3 সংস্করণটি ডাউনলোড করি।


0

পাইডোটকে সঠিকভাবে কাজ করতে আপনাকে পাইপারসিংকে 2.x সংস্করণ থেকে 1.5.7 সংস্করণে ডাউনগ্রেড করতে হবে।

Win-64 এর জন্য, কনডা ব্যবহার করে, এটি আমার পক্ষে কাজ করেছে:

conda install -c https://conda.anaconda.org/Trentonoliphant pyparsing=1.5.7

তারপরে আমি আমার স্ক্রিপ্টে ২.x সংস্করণটি অক্ষম / আনইনস্টল করেছি এবং পাইপার্সিং পুনরায় লোড করেছি:

pyparsing = reload(pyparsing)
pydot = reload(pydot)

আপনার সঠিক সংস্করণ চলছে কিনা তা পরীক্ষা করতে:

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