首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >'itertools‘文件在哪里?

'itertools‘文件在哪里?
EN

Stack Overflow用户
提问于 2010-01-06 01:29:14
回答 4查看 24.7K关注 0票数 9
代码语言:javascript
复制
import itertools
print itertools#ok

代码没问题

但我找不到迭代工具文件。

谁能告诉我“迭代工具文件”在哪里?

我的代码运行python2.5 2.5

代码语言:javascript
复制
import itertools
print itertools.__file__


Traceback (most recent call last):
  File "D:\zjm_code\mysite\zjmbooks\a.py", line 5, in <module>
    print itertools.__file__
AttributeError: 'module' object has no attribute '__file__'
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-06 01:37:50

代码语言:javascript
复制
>>> import itertools
>>> itertools.__file__
'/usr/lib64/python2.6/lib-dynload/itertools.so'

文件名以.so结尾的事实意味着它是用C编写的扩展模块(而不是普通的Python模块)。如果您想查看源代码,请下载Python源代码并查看Modules/itertoolsmodule.c (您还可以在http://svn.python.org/view/python/trunk/Modules/itertoolsmodule.c?view=log的浏览器中查看它)。

编辑(作为对下面评论的答复):也适用于Python2.5:

代码语言:javascript
复制
Python 2.5.2 (r252:60911, Oct  5 2008, 19:29:17) 
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import itertools
>>> itertools.__file__
'/usr/lib/python2.5/lib-dynload/itertools.so'
票数 18
EN

Stack Overflow用户

发布于 2010-01-06 03:23:04

如果您正在寻找源文件(当然是在C中),那么它就是在线这里

票数 4
EN

Stack Overflow用户

发布于 2012-11-07 12:03:43

对于windows用户(我正在运行Python2.7.2,Win7x64,默认安装程序包),对__file__的调用将如@ out 1126所指出的那样终止,我怀疑问题在于itertools是windows包的内置组件。如果你选择了say,exceptions?在另一个平台上(例如,我的macbook上的Python2.6.1),您会看到同样的行为-- Windows只是碰巧有一些类似迭代工具的内置程序。

严格地说,这不是一个答案,但您可以解析sys.modules,这将给您一个提示,说明它来自何处:

代码语言:javascript
复制
>>> import sys
>>> sys.modules['itertools']

<module 'itertools' (built-in)>

它指向内置到python可执行文件的迭代工具。

另外,imp.find_module响应提供了相同的信息:奇怪的返回元组是由规范(请参阅:模块)指定的,并告诉您模块是6类型的,这是imp.C_BUILTIN的枚举。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2010413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档