2016-09-27 5 views
2

Я запускаю CentOS7 и установил pexpect в Python3.5. Однако, когда я вызываю какой-либо из методов, он возвращает ошибку, указывающую, что атрибут не существует. Любые идеи, почему это происходит? Я читал, что это может быть связано с именем файла pexpect.py в каталоге, но у меня нет файла pexpect.py в том же каталоге.Pexpect Methods Not Working

$ pip3.5 freeze | grep pexpect 
pexpect==4.2.1 

Пример кода:

# This connects to the openbsd ftp site and 
# downloads the recursive directory listing. 
import pexpect 
child = pexpect.spawn('ftp ftp.openbsd.org') 
child.expect('Name .*: ') 
child.sendline('anonymous') 
child.expect('Password:') 
child.sendline('[email protected]') 
child.expect('ftp> ') 
child.sendline('lcd /tmp') 
child.expect('ftp> ') 
child.sendline('cd pub/OpenBSD') 
child.expect('ftp> ') 
child.sendline('get README') 
child.expect('ftp> ') 
child.sendline('bye') 

Ошибка:

CentOS7 Virtual Machine Error:

/usr/local/bin/python3.5 /media/sf_PycharmProjects/MyPyScripts/Tutorials/input_cmds 
Traceback (most recent call last): 
    File "/media/sf_PycharmProjects/MyPyScripts/Tutorials/input_cmds", line 4, in <module> 
    child = pexpect.spawn('ftp ftp.openbsd.org') 
AttributeError: module 'pexpect' has no attribute 'spawn' 

ошибок Windows:

Traceback (most recent call last): 
    File "C:/Users/home/PycharmProjects/PyCAT/Current_Version/SFTP/testsftp.py", line 4, in <module> 
    child = pexpect.spawn('ftp ftp.openbsd.org') 
AttributeError: module 'pexpect' has no attribute 'spawn' 

Pexpect Dir:

>>> import pexpect 
>>> dir(pexpect) 
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__'] 
+1

Можете ли вы добавить полный ответ на свой пост? –

+0

@Morgan Thrapp Привет, я добавил полный Traceback. – MBasith

+0

Я могу воспроизвести это на Windows. Возможно, проблема связана с самим модулем или, по крайней мере, с документами. –

ответ

1

Ну, для регистрации ошибок Windows, я могу вам сказать, что Pexpect.spawn не работает на окнах. Это должно что-то сделать с pypi, который предоставляет некоторые модули только для Linux-систем, а spawn использует одну из этих частей.

В Windows вместо этого вы должны использовать PopenSpawn.