如何安装Python食谱文件(.py)?

3 投票
1 回答
2951 浏览
提问于 2025-04-16 04:35

我刚开始学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 个回答

7

这里有两个相关的问题。

首先,在 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(...)

撰写回答