预期问题 (python3.3)

Problems in pexpect (python3.3)

运行 3.3 python 在 CentOS 7 上。 尝试编写简单的脚本,但无法让 pexpect 模块按我的意愿工作 如果我使用解释器 python 3.3,我可以正确编写此命令

    [root@localhost expect]# python3.3
    Python 3.3.3 (default, Apr  7 2015, 02:31:24)
    [GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pexpect
    >>> child = pexpect.spawn('telnet 10.1.1.1')

但是如果我 运行 文件 pexpect.py 使用完全相同的命令,我得到

    [root@localhost expect]# python3.3 /usr/etc/pexpect.py
    Traceback (most recent call last):
      File "/usr/etc/pexpect.py", line 1, in <module>
        import pexpect
      File "/usr/etc/pexpect.py", line 3, in <module>
        child = pexpect.spawn('telnet 10.1.1.1');
    AttributeError: 'module' object has no attribute 'spawn'

我在 google 中找到了一些类似的信息,建议是将 .py 文件移动到另一个文件夹。 它对我不起作用。 另一个建议是删除“pycache”文件夹(我在 pexpect.py 位置有相同的文件夹),但它也没有用。错误仍然是一样的,这个文件夹仍然是在 运行 脚本之后创建的(我的意思是尝试)。 有什么想法吗?

您已调用文件 pexpect.py。当您从文件而不是 pexpect 模块导入时,您需要将其重命名为其他名称。您还需要删除同一文件夹中的任何 .pyc。无论您将脚本移动到哪里,当前文件夹仍将位于实际 pexpect 模块所在位置之前的路径中。