Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos can';t将itertools.so添加到操作系统中的路径_Macos_Python 2.7_Itertools - Fatal编程技术网

Macos can';t将itertools.so添加到操作系统中的路径

Macos can';t将itertools.so添加到操作系统中的路径,macos,python-2.7,itertools,Macos,Python 2.7,Itertools,我正在使用MacOSX10.10.1和python2.7。就在最近,我安装了blend环境,并尝试通过一个名为batch2.py together blender的python程序以编程方式创建一些动画 如果我在python batch2.py中执行程序,它就可以正常工作,为了制作动画,我必须通过命令来执行它 -/Applications/Blender/Blender.app/Contents/MacOS/Blender-b scene.blend-P batch2.py 但是,会出现一个错误

我正在使用MacOSX10.10.1和python2.7。就在最近,我安装了blend环境,并尝试通过一个名为batch2.py together blender的python程序以编程方式创建一些动画

如果我在
python batch2.py
中执行程序,它就可以正常工作,为了制作动画,我必须通过命令来执行它 -
/Applications/Blender/Blender.app/Contents/MacOS/Blender-b scene.blend-P batch2.py

但是,会出现一个错误,说明:

print ( list(itertools.imap(None, numbers, decimals))  )
AttributeError: 'module' object has no attribute 'imap' 
下面是一个简单的python程序batch2.py

import sys    
import itertools

print (sys.path)
print (".....................")

letters = ['a', 'b', 'c', 'd', 'e', 'f']
booleans = [1, 0, 1, 0, 0, 1]
numbers = [23, 20, 44, 32, 7, 12]
decimals = [0.1, 0.7, 0.4, 0.4, 0.5]

print ( list(itertools.imap(None, numbers, decimals))  )
由于blender应用程序有自己的基于python 3.4的python环境,因此我只需将system os环境添加到sys.path中,如下所示

sys.path.append("/Users/abc/anaconda/lib/python2.7")
sys.path.append("/Users/abc/anaconda/lib/python2.7/site-packages")
sys.path.append("/Users/abc/anaconda/lib/python2.7/lib-dynload/")
sys.path.append("/Users/abc/anaconda/lib/python2.7/plat-darwin")
sys.path.append("/Users/abc/anaconda/lib/python2.7/plat-mac")
sys.path.append("/Users/abc/anaconda/lib/python2.7/lib-tk")
sys.path.append("/Users/abc/anaconda/lib/python2.7/lib-old")
sys.path.append("/Users/abc/anaconda/lib/python2.7/site-packages/PIL")
sys.path.append("/Users/abc/anaconda/lib/python2.7/site-packages/Sphinx-1.2.3-py2.7.egg")
sys.path.append("/Users/abc/anaconda/lib/python2.7/site-packages/runipy-0.1.1-py2.7.egg")
sys.path.append("/Users/abc/anaconda/lib/python2.7/site-packages/setuptools-5.8-py2.7.egg")
但它仍然不起作用


我发现itertools的路径是“/Users/abc/anaconda/lib/python2.7/lib dynload/itertools.so”,但我如何使用它呢?

将Python 2.7文件夹添加到路径中不允许Python 3.X使用2.7模块

无论如何,这里并不需要
imap
,您可以使用内置的
zip
功能来组合序列。替换

print ( list(itertools.imap(None, numbers, decimals))  )


如果无论如何都必须使用
imap
,则可以将
itertools
文档中给出的实现复制粘贴到自己的脚本中。(对版本兼容性进行了少量修改)


将Python2.7文件夹添加到路径将不允许Python3.X使用2.7模块

无论如何,这里并不需要
imap
,您可以使用内置的
zip
功能来组合序列。替换

print ( list(itertools.imap(None, numbers, decimals))  )


如果无论如何都必须使用
imap
,则可以将
itertools
文档中给出的实现复制粘贴到自己的脚本中。(对版本兼容性进行了少量修改)


谢谢,凯文。但是仍然有办法使用itertools.imap(),因为我有一个模块需要使用itertools。@user824624否。在Python 3中没有办法使用Python 2模块。那么有没有办法在blender环境中添加itertools模块您可以只使用内置的
映射
,在3.X中,它多少相当于
imap
。请注意,它不再接受
None
作为第一个参数。(同样,在这种情况下,您可以使用
zip
)没有
itertools.map
方法<代码>地图在内置模块中。谢谢,凯文。但是仍然有办法使用itertools.imap(),因为我有一个模块需要使用itertools。@user824624否。在Python 3中没有办法使用Python 2模块。那么有没有办法在blender环境中添加itertools模块您可以只使用内置的
映射
,在3.X中,它多少相当于
imap
。请注意,它不再接受
None
作为第一个参数。(同样,在这种情况下,您可以使用
zip
)没有
itertools.map
方法<代码>地图位于内置模块中。
def imap(function, *iterables):
    # imap(pow, (2,3,10), (5,2,3)) --> 32 9 1000
    iterables = list(map(iter, iterables))
    while True:
        args = [next(it) for it in iterables]
        if function is None:
            yield tuple(args)
        else:
            yield function(*args)