GVKun编程网logo

ImportError:没有名为Foundation的模块(没有名为numpy的模块)

12

本文将为您提供关于ImportError:没有名为Foundation的模块的详细介绍,我们还将为您解释没有名为numpy的模块的相关知识,同时,我们还将为您提供关于ImportError:没有名为d

本文将为您提供关于ImportError:没有名为Foundation的模块的详细介绍,我们还将为您解释没有名为numpy的模块的相关知识,同时,我们还将为您提供关于ImportError:没有名为 dateutil.parser 的模块、ImportError:没有名为 PIL 的模块、ImportError:没有名为 sklearn.cross_validation 的模块、ImportError:没有名为dateutil.parser的模块的实用信息。

本文目录一览:

ImportError:没有名为Foundation的模块(没有名为numpy的模块)

ImportError:没有名为Foundation的模块(没有名为numpy的模块)

我正在尝试按照有关“使用Xcode 3.2开发PyObjC”的可接受答案的说明进行操作。由于我没有足够的代表对实际问题发表评论,因此我将在此处重新发布它们:


这是让PyObjC在Snow Leopard中工作的方法:

  • 使用Finder,以访客身份访问Go > Connect to Server...并连接到http://svn.red-bean.com/pyobjc/trunk/pyobjc/pyobjc-xcode/。

  • 然后Xcode,我在本地系统上创建了一个名为的文件夹~Library/Application Support/Developer/Shared/Xcode/。(您可能已经有此文件夹,但是我还没有为自己定制任何东西)。

  • 我将File Templates文件夹从红豆服务器复制到了新的Xcode文件夹中。

  • Project Templates文件夹复制到其他位置,例如,桌面。

  • 使用终端,导航到我的桌面上的临时Project Templates文件夹,并运行此命令来“构建”模板。

$ cd〜/ Desktop / Project \模板/

$ ./project-tool.py -k -v –template〜/ Desktop / Project \ Templates /
Cocoa-Python \ Application / CocoaApp.xcodeproj / TemplateInfo.plist Cocoa-
Python \ Application〜/ Library / Application \支持/开发人员/ Shared / Xcode /
Project \模板/ Cocoa-Python \应用程序


当我尝试运行以开头的行时,./project-tool.py在Terminal中出现以下错误:

Traceback (most recent call last):    File "./project-tool.py", line 22, in <module>       from Foundation import NSDictionary   ImportError: No module named Foundation

我正在运行Snow Leopard,并且已经安装了Xcode 3.2.1,并且已阅读该模块应该已经安装并可以运行的信息。我读过您可以通过>>>import objc在Python命令行中运行来测试PyObjC模块是否正常工作。运行此命令时,我得到:

>>> import objcTraceback (most recent call last):    File "<stdin>", line 1, in <module>  ImportError: No module named objc

谁能帮我消除这个错误?看来我应该可以通过Snow Leopard安装自动完成所有这些操作,但是我做不到。

答案1

小编典典

好的,事实证明,修改mjv的答案,我能够通过键入以下命令使其正常工作

export PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/PyObjC/"

在执行该./project-tool.py行之前。我仍然感到很荒谬,我必须这样做,如果有人可以看到原因,我将很高兴知道。

这样做也得到了

>>> import objc

线工作。

ImportError:没有名为 dateutil.parser 的模块

ImportError:没有名为 dateutil.parser 的模块

pandasPython程序中导入时收到以下错误

monas-mbp:book mona$ sudo pip install python-dateutil
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
Cleaning up...
monas-mbp:book mona$ python t1.py
No module named dateutil.parser
Traceback (most recent call last):
  File "t1.py",line 4,in <module>
    import pandas as pd
  File "/Library/Python/2.7/site-packages/pandas/__init__.py",line 6,in <module>
    from . import hashtable,tslib,lib
  File "tslib.pyx",line 31,in init pandas.tslib (pandas/tslib.c:48782)
ImportError: No module named dateutil.parser

还有这里的程序:

import codecs 
from math import sqrt
import numpy as np
import pandas as pd

users = {"Angelica": {"Blues Traveler": 3.5,"Broken Bells": 2.0,"Norah Jones": 4.5,"Phoenix": 5.0,"Slightly Stoopid": 1.5,"The Strokes": 2.5,"Vampire Weekend": 2.0},"Bill":{"Blues Traveler": 2.0,"Broken Bells": 3.5,"Deadmau5": 4.0,"Phoenix": 2.0,"Slightly Stoopid": 3.5,"Vampire Weekend": 3.0},"Chan": {"Blues Traveler": 5.0,"Broken Bells": 1.0,"Deadmau5": 1.0,"Norah Jones": 3.0,"Phoenix": 5,"Slightly Stoopid": 1.0},"Dan": {"Blues Traveler": 3.0,"Broken Bells": 4.0,"Deadmau5": 4.5,"Phoenix": 3.0,"Slightly Stoopid": 4.5,"The Strokes": 4.0,"Hailey": {"Broken Bells": 4.0,"Norah Jones": 4.0,"Vampire Weekend": 1.0},"Jordyn":  {"Broken Bells": 4.5,"Norah Jones": 5.0,"Vampire Weekend": 4.0},"Sam": {"Blues Traveler": 5.0,"Slightly Stoopid": 4.0,"The Strokes": 5.0},"Veronica": {"Blues Traveler": 3.0,"Phoenix": 4.0,"Slightly Stoopid": 2.5,"The Strokes": 3.0}
        }



class recommender:

    def __init__(self,data,k=1,metric='pearson',n=5):
        """ initialize recommender
        currently,if data is dictionary the recommender is initialized
        to it.
        For all other data types of data,no initialization occurs
        k is the k value for k nearest neighbor
        metric is which distance formula to use
        n is the maximum number of recommendations to make"""
        self.k = k
        self.n = n
        self.username2id = {}
        self.userid2name = {}
        self.productid2name = {}
        # for some reason I want to save the name of the metric
        self.metric = metric
        if self.metric == 'pearson':
            self.fn = self.pearson
        #
        # if data is dictionary set recommender data to it
        #
        if type(data).__name__ == 'dict':
            self.data = data

    def convertProductID2name(self,id):
        """Given product id number return product name"""
        if id in self.productid2name:
            return self.productid2name[id]
        else:
            return id


    def userRatings(self,id,n):
        """Return n top ratings for user with id"""
        print ("Ratings for " + self.userid2name[id])
        ratings = self.data[id]
        print(len(ratings))
        ratings = list(ratings.items())
        ratings = [(self.convertProductID2name(k),v)
                   for (k,v) in ratings]
        # finally sort and return
        ratings.sort(key=lambda artistTuple: artistTuple[1],reverse = True)
        ratings = ratings[:n]
        for rating in ratings:
            print("%s\t%i" % (rating[0],rating[1]))




    def loadBookDB(self,path=''):
        """loads the BX book dataset. Path is where the BX files are
        located"""
        self.data = {}
        i = 0
        #
        # First load book ratings into self.data
        #
        f = codecs.open(path + "BX-Book-Ratings.csv",'r','utf8')
        for line in f:
            i += 1
            #separate line into fields
            fields = line.split(';')
            user = fields[0].strip('"')
            book = fields[1].strip('"')
            rating = int(fields[2].strip().strip('"'))
            if user in self.data:
                currentRatings = self.data[user]
            else:
                currentRatings = {}
            currentRatings[book] = rating
            self.data[user] = currentRatings
        f.close()
        #
        # Now load books into self.productid2name
        # Books contains isbn,title,and author among other fields
        #
        f = codecs.open(path + "BX-Books.csv",'utf8')
        for line in f:
            i += 1
            #separate line into fields
            fields = line.split(';')
            isbn = fields[0].strip('"')
            title = fields[1].strip('"')
            author = fields[2].strip().strip('"')
            title = title + ' by ' + author
            self.productid2name[isbn] = title
        f.close()
        #
        #  Now load user info into both self.userid2name and
        #  self.username2id
        #
        f = codecs.open(path + "BX-Users.csv",'utf8')
        for line in f:
            i += 1
            #print(line)
            #separate line into fields
            fields = line.split(';')
            userid = fields[0].strip('"')
            location = fields[1].strip('"')
            if len(fields) > 3:
                age = fields[2].strip().strip('"')
            else:
                age = 'NULL'
            if age != 'NULL':
                value = location + '  (age: ' + age + ')'
            else:
                value = location
            self.userid2name[userid] = value
            self.username2id[location] = userid
        f.close()
        print(i)


    def pearson(self,rating1,rating2):
        sum_xy = 0
        sum_x = 0
        sum_y = 0
        sum_x2 = 0
        sum_y2 = 0
        n = 0
        for key in rating1:
            if key in rating2:
                n += 1
                x = rating1[key]
                y = rating2[key]
                sum_xy += x * y
                sum_x += x
                sum_y += y
                sum_x2 += pow(x,2)
                sum_y2 += pow(y,2)
        if n == 0:
            return 0
        # now compute denominator
        denominator = (sqrt(sum_x2 - pow(sum_x,2) / n)
                       * sqrt(sum_y2 - pow(sum_y,2) / n))
        if denominator == 0:
            return 0
        else:
            return (sum_xy - (sum_x * sum_y) / n) / denominator


    def computeNearestNeighbor(self,username):
        """creates a sorted list of users based on their distance to
        username"""
        distances = []
        for instance in self.data:
            if instance != username:
                distance = self.fn(self.data[username],self.data[instance])
                distances.append((instance,distance))
        # sort based on distance -- closest first
        distances.sort(key=lambda artistTuple: artistTuple[1],reverse=True)
        return distances

    def recommend(self,user):
       """Give list of recommendations"""
       recommendations = {}
       # first get list of users  ordered by nearness
       nearest = self.computeNearestNeighbor(user)
       #
       # now get the ratings for the user
       #
       userRatings = self.data[user]
       #
       # determine the total distance
       totalDistance = 0.0
       for i in range(self.k):
          totalDistance += nearest[i][1]
       # now iterate through the k nearest neighbors
       # accumulating their ratings
       for i in range(self.k):
          # compute slice of pie 
          weight = nearest[i][1] / totalDistance
          # get the name of the person
          name = nearest[i][0]
          # get the ratings for this person
          neighborRatings = self.data[name]
          # get the name of the person
          # now find bands neighbor rated that user didn't
          for artist in neighborRatings:
             if not artist in userRatings:
                if artist not in recommendations:
                   recommendations[artist] = (neighborRatings[artist]
                                              * weight)
                else:
                   recommendations[artist] = (recommendations[artist]
                                              + neighborRatings[artist]
                                              * weight)
       # now make list from dictionary
       recommendations = list(recommendations.items())
       recommendations = [(self.convertProductID2name(k),v)
                          for (k,v) in recommendations]
       # finally sort and return
       recommendations.sort(key=lambda artistTuple: artistTuple[1],reverse = True)
       # Return the first n items
       return recommendations[:self.n]

r = recommender(users)
# The author implementation
r.loadBookDB('/Users/mona/Downloads/BX-Dump/')

ratings = pd.read_csv('/Users/danialt/BX-CSV-Dump/BX-Book-Ratings.csv',sep=";",quotechar="\"",escapechar="\\")
books = pd.read_csv('/Users/danialt/BX-CSV-Dump/BX-Books.csv',escapechar="\\")
users = pd.read_csv('/Users/danialt/BX-CSV-Dump/BX-Users.csv',escapechar="\\")



pivot_rating = ratings.pivot(index='User-ID',columns='ISBN',values='Book-Rating')

ImportError:没有名为 PIL 的模块

ImportError:没有名为 PIL 的模块

我在 shell 中使用这个命令来安装 PIL:

easy_install PIL

然后我运行python并输入:import PIL。但我得到这个错误:

Traceback (most recent call last):  File "<console>", line 1, in <module>ImportError: No module named PIL

我从来没有遇到过这样的问题,你怎么看?

答案1

小编典典

在 PIL 的某些安装中,您必须执行

import Image

而不是import PIL(实际上 PIL 并不总是以这种方式导入)。由于import Image对您有用,这意味着您实际上已经安装了 PIL。

为库和 Python 模块使用不同的名称是不寻常的,但这是为(某些版本的)PIL 选择的名称。

您可以从官方教程中获得有关如何使用该模块的更多信息。

PS :事实上,在 某些 安装上,import PIL 确实 有效,这增加了混乱。正如@JanneKarila
发现的,文档中的一个示例以及 MacPorts PIL
包(1.1.7)的一些更新版本也证实了这一点。

ImportError:没有名为 sklearn.cross_validation 的模块

ImportError:没有名为 sklearn.cross_validation 的模块

我在 Ubuntu 14.04 中使用 python 2.7。我使用以下命令安装了 scikit-learn、numpy 和 matplotlib:

sudo apt-get install build-essential python-dev python-numpy \python-numpy-dev python-scipy libatlas-dev g++ python-matplotlib \ipython

但是当我导入这些包时:

from sklearn.cross_validation import train_test_split

它返回给我这个错误:

ImportError: No module named sklearn.cross_validation

我需要做什么?

答案1

小编典典

它必须与cross_validation子模块的重命名和弃用有关model_selection。尝试替换cross_validationmodel_selection

ImportError:没有名为dateutil.parser的模块

ImportError:没有名为dateutil.parser的模块

pandasPython程序中导入时收到以下错误

monas-mbp:book mona$ sudo pip install python-dateutil
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
Cleaning up...
monas-mbp:book mona$ python t1.py
No module named dateutil.parser
Traceback (most recent call last):
  File "t1.py",line 4,in <module>
    import pandas as pd
  File "/Library/Python/2.7/site-packages/pandas/__init__.py",line 6,in <module>
    from . import hashtable,tslib,lib
  File "tslib.pyx",line 31,in init pandas.tslib (pandas/tslib.c:48782)
ImportError: No module named dateutil.parser

这也是程序:

import codecs 
from math import sqrt
import numpy as np
import pandas as pd

users = {"Angelica": {"Blues Traveler": 3.5,"Broken Bells": 2.0,"Norah Jones": 4.5,"Phoenix": 5.0,"Slightly Stoopid": 1.5,"The Strokes": 2.5,"Vampire Weekend": 2.0},"Bill":{"Blues Traveler": 2.0,"Broken Bells": 3.5,"Deadmau5": 4.0,"Phoenix": 2.0,"Slightly Stoopid": 3.5,"Vampire Weekend": 3.0},"Chan": {"Blues Traveler": 5.0,"Broken Bells": 1.0,"Deadmau5": 1.0,"Norah Jones": 3.0,"Phoenix": 5,"Slightly Stoopid": 1.0},"Dan": {"Blues Traveler": 3.0,"Broken Bells": 4.0,"Deadmau5": 4.5,"Phoenix": 3.0,"Slightly Stoopid": 4.5,"The Strokes": 4.0,"Hailey": {"Broken Bells": 4.0,"Norah Jones": 4.0,"Vampire Weekend": 1.0},"Jordyn":  {"Broken Bells": 4.5,"Norah Jones": 5.0,"Vampire Weekend": 4.0},"Sam": {"Blues Traveler": 5.0,"Slightly Stoopid": 4.0,"The Strokes": 5.0},"Veronica": {"Blues Traveler": 3.0,"Phoenix": 4.0,"Slightly Stoopid": 2.5,"The Strokes": 3.0}
        }



class recommender:

    def __init__(self,data,k=1,metric='pearson',n=5):
        """ initialize recommender
        currently,if data is dictionary the recommender is initialized
        to it.
        For all other data types of data,no initialization occurs
        k is the k value for k nearest neighbor
        metric is which distance formula to use
        n is the maximum number of recommendations to make"""
        self.k = k
        self.n = n
        self.username2id = {}
        self.userid2name = {}
        self.productid2name = {}
        # for some reason I want to save the name of the metric
        self.metric = metric
        if self.metric == 'pearson':
            self.fn = self.pearson
        #
        # if data is dictionary set recommender data to it
        #
        if type(data).__name__ == 'dict':
            self.data = data

    def convertProductID2name(self,id):
        """Given product id number return product name"""
        if id in self.productid2name:
            return self.productid2name[id]
        else:
            return id


    def userRatings(self,id,n):
        """Return n top ratings for user with id"""
        print ("Ratings for " + self.userid2name[id])
        ratings = self.data[id]
        print(len(ratings))
        ratings = list(ratings.items())
        ratings = [(self.convertProductID2name(k),v)
                   for (k,v) in ratings]
        # finally sort and return
        ratings.sort(key=lambda artistTuple: artistTuple[1],reverse = True)
        ratings = ratings[:n]
        for rating in ratings:
            print("%s\t%i" % (rating[0],rating[1]))




    def loadBookDB(self,path=''):
        """loads the BX book dataset. Path is where the BX files are
        located"""
        self.data = {}
        i = 0
        #
        # First load book ratings into self.data
        #
        f = codecs.open(path + "BX-Book-Ratings.csv",'r','utf8')
        for line in f:
            i += 1
            #separate line into fields
            fields = line.split(';')
            user = fields[0].strip('"')
            book = fields[1].strip('"')
            rating = int(fields[2].strip().strip('"'))
            if user in self.data:
                currentRatings = self.data[user]
            else:
                currentRatings = {}
            currentRatings[book] = rating
            self.data[user] = currentRatings
        f.close()
        #
        # Now load books into self.productid2name
        # Books contains isbn,title,and author among other fields
        #
        f = codecs.open(path + "BX-Books.csv",'utf8')
        for line in f:
            i += 1
            #separate line into fields
            fields = line.split(';')
            isbn = fields[0].strip('"')
            title = fields[1].strip('"')
            author = fields[2].strip().strip('"')
            title = title + ' by ' + author
            self.productid2name[isbn] = title
        f.close()
        #
        #  Now load user info into both self.userid2name and
        #  self.username2id
        #
        f = codecs.open(path + "BX-Users.csv",'utf8')
        for line in f:
            i += 1
            #print(line)
            #separate line into fields
            fields = line.split(';')
            userid = fields[0].strip('"')
            location = fields[1].strip('"')
            if len(fields) > 3:
                age = fields[2].strip().strip('"')
            else:
                age = 'NULL'
            if age != 'NULL':
                value = location + '  (age: ' + age + ')'
            else:
                value = location
            self.userid2name[userid] = value
            self.username2id[location] = userid
        f.close()
        print(i)


    def pearson(self,rating1,rating2):
        sum_xy = 0
        sum_x = 0
        sum_y = 0
        sum_x2 = 0
        sum_y2 = 0
        n = 0
        for key in rating1:
            if key in rating2:
                n += 1
                x = rating1[key]
                y = rating2[key]
                sum_xy += x * y
                sum_x += x
                sum_y += y
                sum_x2 += pow(x,2)
                sum_y2 += pow(y,2)
        if n == 0:
            return 0
        # now compute denominator
        denominator = (sqrt(sum_x2 - pow(sum_x,2) / n)
                       * sqrt(sum_y2 - pow(sum_y,2) / n))
        if denominator == 0:
            return 0
        else:
            return (sum_xy - (sum_x * sum_y) / n) / denominator


    def computeNearestNeighbor(self,username):
        """creates a sorted list of users based on their distance to
        username"""
        distances = []
        for instance in self.data:
            if instance != username:
                distance = self.fn(self.data[username],self.data[instance])
                distances.append((instance,distance))
        # sort based on distance -- closest first
        distances.sort(key=lambda artistTuple: artistTuple[1],reverse=True)
        return distances

    def recommend(self,user):
       """Give list of recommendations"""
       recommendations = {}
       # first get list of users  ordered by nearness
       nearest = self.computeNearestNeighbor(user)
       #
       # now get the ratings for the user
       #
       userRatings = self.data[user]
       #
       # determine the total distance
       totalDistance = 0.0
       for i in range(self.k):
          totalDistance += nearest[i][1]
       # now iterate through the k nearest neighbors
       # accumulating their ratings
       for i in range(self.k):
          # compute slice of pie 
          weight = nearest[i][1] / totalDistance
          # get the name of the person
          name = nearest[i][0]
          # get the ratings for this person
          neighborRatings = self.data[name]
          # get the name of the person
          # now find bands neighbor rated that user didn't
          for artist in neighborRatings:
             if not artist in userRatings:
                if artist not in recommendations:
                   recommendations[artist] = (neighborRatings[artist]
                                              * weight)
                else:
                   recommendations[artist] = (recommendations[artist]
                                              + neighborRatings[artist]
                                              * weight)
       # now make list from dictionary
       recommendations = list(recommendations.items())
       recommendations = [(self.convertProductID2name(k),v)
                          for (k,v) in recommendations]
       # finally sort and return
       recommendations.sort(key=lambda artistTuple: artistTuple[1],reverse = True)
       # Return the first n items
       return recommendations[:self.n]

r = recommender(users)
# The author implementation
r.loadBookDB('/Users/mona/Downloads/BX-Dump/')

ratings = pd.read_csv('/Users/danialt/BX-CSV-Dump/BX-Book-Ratings.csv',sep=";",quotechar="\"",escapechar="\\")
books = pd.read_csv('/Users/danialt/BX-CSV-Dump/BX-Books.csv',escapechar="\\")
users = pd.read_csv('/Users/danialt/BX-CSV-Dump/BX-Users.csv',escapechar="\\")



pivot_rating = ratings.pivot(index='User-ID',columns='ISBN',values='Book-Rating')

今天的关于ImportError:没有名为Foundation的模块没有名为numpy的模块的分享已经结束,谢谢您的关注,如果想了解更多关于ImportError:没有名为 dateutil.parser 的模块、ImportError:没有名为 PIL 的模块、ImportError:没有名为 sklearn.cross_validation 的模块、ImportError:没有名为dateutil.parser的模块的相关知识,请在本站进行查询。

本文标签: