如何安装Python食谱文件(.py)?
我刚开始学Python,现在在用Py3k(Windows系统)。
我在安装一个.py文件时遇到了问题。简单来说,我想使用这个页面底部提供的食谱,链接是这里。所以我想把它们放到一个.py文件里,然后在我的任何源代码中import它们。
于是我把所有的食谱复制到了一个叫recipes.py的文件里,并把这个文件放到了C:\Python3k\Lib\site-packages目录下。
现在,import可以正常工作,但当我尝试调用里面的任何函数(比如take)时,出现了global name 'islice' is not defined的错误……所以我想,我应该在recipes.py里加一个import itertools。
可是我还是遇到同样的错误?我需要把所有的地方都改成itertools.<funcname>吗?我该怎么让这个导入在全局都能用?这是Py3k的新变化吗?我是不是漏掉了什么?
提前谢谢你, :)
相关问题:
1 个回答
这里有两个相关的问题。
首先,在 recipes.py 文件中,你需要访问所有的 itertools 库。
至少,这意味着你需要在文件的顶部加上
import itertools
这样做。但是在这种情况下,你需要在使用 itertools 的函数时加上 itertools.<函数名>,就像你说的那样。(你也可以用 import itertools as it,然后用 it.<函数名>。)
其次,你可以这样做
from itertools import islice, count, chain
但你需要把所有需要的函数都放在列表里。
最后,虽然不太推荐,但可能是最简单的做法,就是这样
from itertools import *
这样做是有风险的,因为它会把 itertools 中的 所有内容 都引入到你的命名空间,这被认为是不好的做法且不受控制,但在这种情况下可能也不是特别糟糕。
其次,在你所有使用 recipes.py 的代码中,你会遇到类似的问题;你需要明确地引入或标明所有内容。所以,要么
import recipes
recipes.take(...)
要么
from recipes import take
take(...)