ImportError: dateutil.parser नाम का कोई मॉड्यूल नहीं

| | | | | | | | | | | | | | | | | | | | | | | | | | | |

एक <कोड>पायथन प्रोग्राम में <कोड>पांडा आयात करते समय मुझे निम्न त्रुटि प्राप्त हो रही है

monas-mbp:book mona$ sudo pip install पायथन-डेटुटिल आवश्यकता पहले से ही संतुष्ट है (उपयोग - अपग्रेड करने के लिए अपग्रेड): /सिस्टम/लाइब्रेरी/फ्रेमवर्क/पायथन.फ्रेमवर्क/संस्करण/2.7/एक्स्ट्रा/लिब/पायथन में अजगर-डेटुटिल क्लीनिंग अप... मोनास-एमबीपी:बुक मोना $ python t1.py dateutil.parser ट्रेसबैक नाम का कोई मॉड्यूल नहीं (सबसे हालिया कॉल अंतिम): फ़ाइल "t1.py", पंक्ति 4, <मॉड्यूल> पांडा को पीडी फ़ाइल के रूप में आयात करें "/Library/Python/2.7/site-packages/pandas/__init__.py", लाइन 6, <मॉड्यूल> से । आयात हैशटेबल, tslib, lib फ़ाइल "tslib.pyx", लाइन 31, init pandas.tslib (pandas/tslib.c:48782) में आयात त्रुटि: dateutil.parser नाम का कोई मॉड्यूल नहीं 

भी यहाँ कार्यक्रम है:

गणित से आयात कोडेक्स आयात sqrt आयात numpy as np आयात पांडा pd उपयोगकर्ताओं के रूप में = {"एंजेलिका": {"ब्लूज़ ट्रैवलर": 3.5, "ब्रोकन बेल्स": 2.0, "नोरा जोन्स": 4.5, "फीनिक्स": 5.0, "स्लाइटली स्टूपिड": 1.5, "द स्ट्रोक्स": 2.5, "वैम्पायर वीकेंड": 2.0}, "बिल": {"ब्लूज़ ट्रैवलर": 2.0, " ब्रोकन बेल्स": 3.5, "डेडमॉ5": 4.0, "फीनिक्स": 2.0, "स्लाइटली स्टूपिड": 3.5, "वैम्पायर वीकेंड": 3.0}, "चैन": {"ब्लूज़ ट्रैवलर": 5.0, "ब्रोकन बेल्स": 1.0, "डेडमॉ 5": 1.0, "नोरा जोन्स": 3.0, "फीनिक्स": 5, "स्लाइटली स्टूपिड": 1.0}, "डैन": {"ब्लूज़ ट्रैवलर": 3.0, "ब्रोकन बेल्स": 4.0, "डेडमॉ 5" ": 4.5, "फीनिक्स": 3.0, "स्लाइटली स्टूपिड": 4.5, "द स्ट्रोक्स": 4.0, "वैम्पायर वीकेंड": 2.0}, "हैली": {"ब्रोकन बेल्स": 4.0, "डेडमॉ 5": 1.0, "नोरा जोन्स": 4.0, "द स्ट्रोक्स": 4.0, "वैम्पायर वीकेंड": 1.0}, "जॉर्डिन": {"ब्रोक n बेल्स": 4.5, "डेडमॉ5": 4.0, "नोरा जोन्स": 5.0, "फीनिक्स": 5.0, "स्लाइटली स्टूपिड": 4.5, "द स्ट्रोक्स": 4.0, "वैम्पायर वीकेंड": 4.0}, "सैम" : {"ब्लूज़ ट्रैवलर": 5.0, "ब्रोकन बेल्स": 2.0, "नोरा जोन्स": 3.0, "फीनिक्स": 5.0, "स्लाइटली स्टूपिड": 4.0, "द स्ट्रोक्स": 5.0}, "वेरोनिका": {" ब्लूज़ ट्रैवलर": 3.0, "नोरा जोन्स": 5.0, "फीनिक्स": 4.0, "स्लाइटली स्टूपिड": 2.5, "द स्ट्रोक्स": 3.0}} क्लास अनुशंसाकर्ता: def __init__(self, data, k=1, metric= "पियर्सन", एन = 5): """ वर्तमान में अनुशंसाकर्ता प्रारंभ करें, यदि डेटा शब्दकोश है तो अनुशंसाकर्ता को प्रारंभ किया जाता है। अन्य सभी डेटा प्रकार के डेटा के लिए, कोई आरंभीकरण नहीं होता है k, k निकटतम पड़ोसी मीट्रिक के लिए k मान है, जिसका उपयोग करने के लिए n दूरी सूत्र """ बनाने के लिए अनुशंसाओं की अधिकतम संख्या है self.k = k self.n = n self .username2id = {} self.userid2name = {} self.productid2name = {} # किसी कारण से मैं मेट्रिक का नाम सेव करना चाहता हूं। self.metric = metric if self.metric == "पियर्सन": self.fn = self .पीयरसन # # अगर डेटा डिक्शनरी है तो इसके लिए सिफारिशकर्ता डेटा सेट करें # अगर टाइप करें (डेटा)। __ नाम __ == "तानाशाही": स्व. """ अगर आईडी में self.productid2name: वापसी self.productid2name[id] अन्य: वापसी आईडी def userRatings(self, id, n): """आईडी के साथ उपयोगकर्ता के लिए n शीर्ष रेटिंग लौटाएं"""प्रिंट ("के लिए रेटिंग) "+ self.userid2name[id]) रेटिंग = self.data[id] प्रिंट (लेन (रेटिंग)) रेटिंग = सूची (रेटिंग.आइटम ()) रेटिंग = [(self.convertProductID2name (k), v) (k) के लिए , v) रेटिंग में] # अंत में क्रमबद्ध करें और रेटिंग लौटाएं। सॉर्ट करें (कुंजी = लैम्ब्डा एआर tistTuple: कलाकार टुपल [1], रिवर्स = ट्रू) रेटिंग = रेटिंग [: n] रेटिंग में रेटिंग के लिए: प्रिंट ("% s% i"% (रेटिंग [0], रेटिंग [1])) def loadBookDB (स्वयं, पथ =""): """बीएक्स पुस्तक डेटासेट लोड करता है। पथ वह जगह है जहाँ BX फ़ाइलें स्थित हैं""" self.data = {} i = 0 # # पुस्तक रेटिंग को स्वयं में लोड करें। डेटा # f = codecs.open(path + "BX-Book-Ratings.csv", " r", "utf8") f में लाइन के लिए: i += 1 #अलग लाइन को फील्ड फील्ड्स में = लाइन.स्प्लिट (";") यूजर = फील्ड्स [0]। स्ट्रिप (""") बुक = फील्ड्स [1] .strip(""") Rating = int(fields[2].strip().strip(""")) अगर उपयोगकर्ता self.data में: currentRatings = self.data[user] अन्य: currentRatings = {} currentRatings[ Book] = रेटिंग self.data[user] = currentRatings f.close() # # अब पुस्तकों को self.productid2name में लोड करें # पुस्तकों में अन्य क्षेत्रों के बीच isbn, शीर्षक और लेखक शामिल हैं # f = codecs.open(path + "BX- Books.csv", "r", "utf8") f में लाइन के लिए: i += 1 #अलग लाइन को फील्ड्स में अलग करें = line.split(";") isbn = फील्ड्स[0].strip(""") शीर्षक = फ़ील्ड [1]। पट्टी (""") लेखक = फ़ील्ड [2]। पट्टी ()। पट्टी (""") शीर्षक = शीर्षक + "द्वारा" + लेखक स्वयं। उत्पाद 2 नाम [आईएसबीएन] = शीर्षक एफ। बंद करें () # # अब उपयोगकर्ता जानकारी को self.userid2name और # self.username2id दोनों में लोड करें # f = codecs.open(path + "BX-U sers.csv", "r", "utf8") f में लाइन के लिए: i += 1 #print(line) #अलग लाइन को फ़ील्ड्स में अलग करें = line.split(";") userid = field[0].strip (""") स्थान = फ़ील्ड [1]। स्ट्रिप (""") अगर लेन (फ़ील्ड) > 3: आयु = फ़ील्ड [2]। पट्टी ()। पट्टी (""") अन्य: आयु = "शून्य" यदि आयु! = "शून्य": मान = स्थान + "(आयु:" + आयु + ")" अन्य : मान = स्थान self.userid2name [userid] = मान self.username2id [स्थान] = उपयोगकर्ता आईडी f.close () प्रिंट (i) पियर्सन (स्वयं, रेटिंग 1, रेटिंग 2): sum_xy = 0 sum_x = 0 sum_y = 0 sum_x2 = रेटिंग1 में कुंजी के लिए 0 sum_y2 = 0 n = 0: यदि रेटिंग2 में कुंजी: n += 1 x = रेटिंग1[कुंजी] y = रेटिंग2[कुंजी] sum_xy += x * y sum_x += x sum_y += y sum_x2 += pow(x, 2) sum_y2 += pow(y, 2) अगर n == 0: वापसी 0 # अब हर की गणना करें = (sqrt(sum_x2 - pow(sum_x, 2) / n) * sqrt(sum_y2 - pow( sum_y, 2) / n)) अगर हर == 0: रिटर्न 0 और: रिटर्न (sum_xy - (sum_x * sum_y) / n) / डिनोमिनेटर डिफ कंप्यूट नियरेस्ट नेबर (स्वयं, उपयोगकर्ता नाम): """ आधारित उपयोगकर्ताओं की एक क्रमबद्ध सूची बनाता है उपयोगकर्ता नाम से उनकी दूरी पर """ दूरी = [] उदाहरण के लिए self.data में: यदि उदाहरण != उपयोगकर्ता नाम: दूरी = self.fn(self.data[username], self.data[instance]) दूरी। संलग्न करें (( उदाहरण, दूरी)) # d . के आधार पर छाँटें istance --निकटतम प्रथम डिस्टेंस.सॉर्ट (की = लैम्ब्डा आर्टिस्ट टुपल: आर्टिस्ट टुपल [1], रिवर्स = ट्रू) रिटर्न डिस्टेंस डिफ अनुशंसा (स्वयं, उपयोगकर्ता): """सिफारिशों की सूची दें""" सिफारिशें = {} # पहले प्राप्त करें उपयोगकर्ताओं की सूची निकटतम = self.computeNearestNeighbor (उपयोगकर्ता) # # अब उपयोगकर्ता के लिए रेटिंग प्राप्त करें # userRatings = self.data [उपयोगकर्ता] # # कुल दूरी निर्धारित करें कुल दूरी = 0.0 के लिए मैं सीमा में (self.k) : TotalDistance +=निकटतम[i][1] # अब k निकटतम पड़ोसियों के माध्यम से पुनरावृति करें # रेंज में i के लिए अपनी रेटिंग जमा कर रहा है(self.k): # पाई वजन का गणना टुकड़ा = निकटतम[i][1] / TotalDistance # व्यक्ति का नाम प्राप्त करें नाम = निकटतम [i] [0] # इस व्यक्ति के लिए रेटिंग प्राप्त करें पड़ोसी रेटिंग = स्वयं। डेटा [नाम] # व्यक्ति का नाम प्राप्त करें # अब उस बैंड का पता लगाएं पड़ोसी ने उस कलाकार के लिए "टी" नहीं किया पड़ोसी रेटिंग में: यदि उपयोगकर्ता रेटिंग में कलाकार नहीं है: यदि कलाकार अनुशंसाओं में नहीं है: अनुशंसाएं [कलाकार] = (पड़ोसी रेटिंग [कलाकार] * वजन) अन्य: अनुशंसाएं [आरती सेंट] = (सिफारिशें [कलाकार] + पड़ोसी रेटिंग [कलाकार] * वजन) # अब शब्दकोश अनुशंसाओं से सूची बनाएं = सूची (सिफारिशें। आइटम ()) अनुशंसाएं = [(self.convertProductID2name (के), वी) के लिए (के, वी) ) अनुशंसाओं में] # अंत में क्रमबद्ध करें और अनुशंसाएँ लौटाएँ। सॉर्ट करें (कुंजी = लैम्ब्डा कलाकार टुपल: कलाकार टुपल [1], रिवर्स = ट्रू) # पहले n आइटम लौटाएँ अनुशंसाएँ लौटाएँ [: self.n] r = अनुशंसाकर्ता (उपयोगकर्ता) # लेखक कार्यान्वयन r.loadBookDB("/Users/mona/Downloads/BX-Dump/") रेटिंग = pd.read_csv("/Users/danialt/BX-CSV-Dump/BX-Book-Ratings.csv", sep="; ", कोटचर =" "", एस्केपचर = "") किताबें = pd.read_csv ("/ उपयोगकर्ता/डेनियल/बीएक्स-सीएसवी-डंप/बीएक्स-बुक्स.सीएसवी", सितंबर = ";", कोटचर = """ , एस्केपचर = "") उपयोगकर्ता = pd.read_csv ("/ उपयोगकर्ता/डेनियल/बीएक्स-सीएसवी-डंप/बीएक्स-उपयोगकर्ता। सीएसवी", सितंबर = ";", उद्धरण = """, एस्केपचर = "") पिवट_रेटिंग = रेटिंग्स.पिवोट (इंडेक्स = "यूजर-आईडी", कॉलम = "आईएसबीएन", वैल्यूज = "बुक-रेटिंग")