如何安装Python配方文件(.py)?
我是Python新手。我目前在Py3k(Win)上 安装如何安装Python配方文件(.py)?,python,installation,python-3.x,recipe,Python,Installation,Python 3.x,Recipe,我是Python新手。我目前在Py3k(Win)上 安装.py文件时遇到问题。基本上,我想使用页面底部提供的食谱。因此,我想将它们放在.py中,并将它们导入到我的任何源代码中 因此,我将所有配方复制到recipes.py文件中,并将它们复制到C:\Python3k\Lib\site packages 现在,import工作正常,但是当我试图从中调用任何函数(例如,take)时,我得到了一个全局名称“islice”未定义…所以我想,我应该在recipes.py中添加一个itertools导入 我还
.py
文件时遇到问题。基本上,我想使用页面底部提供的食谱。因此,我想将它们放在.py
中,并将它们导入到我的任何源代码中
因此,我将所有配方复制到recipes.py
文件中,并将它们复制到C:\Python3k\Lib\site packages
现在,import
工作正常,但是当我试图从中调用任何函数(例如,take
)时,我得到了一个全局名称“islice”未定义
…所以我想,我应该在recipes.py中添加一个itertools
导入
我还是会犯同样的错误吗?是否需要将所有实例更改为itertools.
?我怎样才能使进口的产品全球化?这是新的Py3k变化吗?我遗漏了什么吗
提前感谢:)有两个密切相关的问题
首先,在recipes.py中,您需要访问所有的itertools
至少,这意味着你需要
import itertools
在顶端。但是在这种情况下,您需要将所有的itertools函数限定为itertools.
,正如您所说的。(您也可以使用导入itertools,然后使用导入它。
)
第二,你可以这样做
from itertools import islice, count, chain
但是您需要将所有需要的函数都放在列表中
最后,建议最少但可能最简单的方法是
from itertools import *
这是危险的,因为它污染了您的命名空间,从itertools
,这被认为是不好的和不受控制的,但在这种情况下可能并不可怕
其次,在使用recipes.py
的所有代码中都存在类似的问题;您需要限定或显式导入所有内容。所以,也
import recipes
recipes.take(...)
或
您是否在recipes.py
?@jcubic中使用了itertools import*
中的,全局名称“itertools”未为recipes.py
?:-\古怪的你应该问,如何安装python模块(我肯定有很多信息)。@alxx,这与安装模块无关@jcubic。请坚持平面设计。+1但老实说,我甚至不会提到来自foo import*
的。看看jcubic对这个问题的评论,以证明我们并非都是成年人。我知道blah import的*
是不受欢迎的,但这只是为了解决project euler和其他问题……所以这对我来说并不重要,反正在这种情况下……)<代码>来自itertools导入*
是此处的适当导入语句。如果添加了未来的配方,它们可能会使用需要添加到显式导入中的新itertools函数。配方定义预计将从itertools命名空间中运行。您不必担心污染模块名称空间,因为这正是您想要用于recipes模块的名称空间。(像这样的情况,您正在“扩展”另一个模块,是通配符导入的主要用例之一。)
from recipes import take
take(...)