2016-09-27 107 views
2

私はCentOS7を実行していて、Python3.5にpexpectをインストールしました。しかし、いずれかのメソッドを呼び出すと、属性が存在しないことを示すエラーが返されます。これがなぜ起こっているのでしょうか?私はそれがディレクトリ内のファイル名pexpect.pyに起因する可能性があると読んでいますが、同じディレクトリにpexpect.pyというファイルはありません。Pexpectメソッドが動作しません

$ 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仮想マシンのエラー:

/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監督:

>>> 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がWindows上で動作しないことを伝えることができます。これは、Linuxシステムでのみいくつかのモジュールを提供するpypiで何かをしなければならず、spawnはそれらの部分の1つを使用します。

Windowsでは、代わりにPopenSpawnを使用する必要があります。

関連する問題