本文将为您提供关于ImportError:没有名为Foundation的模块的详细介绍,我们还将为您解释没有名为numpy的模块的相关知识,同时,我们还将为您提供关于ImportError:没有名为d
本文将为您提供关于ImportError:没有名为Foundation的模块的详细介绍,我们还将为您解释没有名为numpy的模块的相关知识,同时,我们还将为您提供关于ImportError:没有名为 dateutil.parser 的模块、ImportError:没有名为 PIL 的模块、ImportError:没有名为 sklearn.cross_validation 的模块、ImportError:没有名为dateutil.parser的模块的实用信息。
本文目录一览:- ImportError:没有名为Foundation的模块(没有名为numpy的模块)
- ImportError:没有名为 dateutil.parser 的模块
- ImportError:没有名为 PIL 的模块
- ImportError:没有名为 sklearn.cross_validation 的模块
- ImportError:没有名为dateutil.parser的模块
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 的模块
pandas
在Python
程序中导入时收到以下错误
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 的模块
我在 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 的模块
我在 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_validation
为model_selection
ImportError:没有名为dateutil.parser的模块
pandas
在Python
程序中导入时收到以下错误
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的模块的相关知识,请在本站进行查询。
本文标签: