sys.path 一定是带paramiko的目录名列表?
sys.path must be a list of directory names with paramiko?
我正在使用 paramiko 使 ssh 连接到我的 IP 地址,然后我在循环中执行某些命令。以前这工作正常但现在这个抛出异常
logging.basicConfig()
paramiko_logger = logging.getLogger("paramiko.transport")
paramiko_logger.disabled = True
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ipaddress = '169.254.30.39'
ssh.connect(ipaddress, port=22, username='root', password='')
Traceback (most recent call last):
File ".\Audio_connect.py", line 100, in <module>
Audio_connect_class('43210')
File ".\Audio_connect.py", line 10, in __init__
self.getreorderedzip(reorder)
File ".\Audio_connect.py", line 34, in getreorderedzip
self.execute(zip(newinput,newtestcasenames))
File ".\Audio_connect.py", line 44, in execute
ssh.connect(ipaddress, port=22, username='root', password='')
File "C:\Python27\lib\site-packages\paramiko\client.py", line 392, in connect
t.start_client(timeout=timeout)
File "C:\Python27\lib\site-packages\paramiko\transport.py", line 545, in start_client
raise e
RuntimeError: sys.path must be a list of directory names
当我打印 sys.path 时,这会打印我的文件所在的文件夹位置,而我知道 sys.path 通常会打印所有依赖文件夹的列表。我几乎尝试了所有方法,并通过了关于 Whosebug 的已经询问过的查询,但没有任何帮助。
*****编辑********
工作代码
import paramiko, os, sys, time
import Audio_connect_Input
from LogFille import writelogfile
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('169.254.30.39', port=22, username='root', password='')
channel = ssh.invoke_shell()
channel_data = str()
MainConnectionId= str()
isError = False
input =[
Audio_connect_Input.A,
Audio_connect_Input.B,
Audio_connect_Input.C,
Audio_connect_Input.D,
Audio_connect_Input.E
]
testcaseNames = [
'A',
'B',
'C',
'D',
'E'
]
key = str()
elem = str()
#while True:
for (x,name) in zip(input,testcaseNames):
.... Execution steps...
sys.path result
C:\XYZ_CLI\cli_testexecutions
E:\python27
C:\WINDOWS\SYSTEM32\python27.zip
E:\Python27\DLLs
E:\Python27\lib
E:\Python27\lib\plat-win
E:\Python27\lib\lib-tk
E:\Python27\lib\site-packages
******非工作代码******
import paramiko, os, sys, time
from LogFille import writelogfile
import logging
import Audio_connect_Input
class Audio_connect_class(object):
def __init__(self, reorder):
print '__init___ ', sys.path
self.getreorderedzip(reorder)
def getreorderedzip(self, reorder):
print ''
input =[
Audio_connect_Input.A,
Audio_connect_Input.B,
Audio_connect_Input.C,
Audio_connect_Input.D,
Audio_connect_Input.E
]
testcaseNames = [
'A',
'B',
'C',
'D',
'E'
]
newinput = []
newtestcasenames = []
for idx in reorder:
newinput.append(input[int(idx)])
newtestcasenames.append(testcaseNames[int(idx)])
self.execute(zip(newinput,newtestcasenames))
def execute(self, received_zip):
logging.basicConfig()
paramiko_logger = logging.getLogger("paramiko.transport")
paramiko_logger.disabled = True
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ipaddress = '169.254.30.39'
ssh.connect(ipaddress, port=22, username='root', password='')
channel = ssh.invoke_shell()
channel_data = str()
MainConnectionId= str()
isError = False
key = str()
elem = str()
#while True:
for (x,name) in received_zip:
****Execution Steps*****
sys.path result
C:\XYZ_CLI\cli_testexecution_as_class
两个文件名相同,但保存在不同的文件夹中。
好吧,在花了很多时间解决这个问题之后,我发现 from LogFille import writelogfile
正在内部执行 os.sys.path = os.getcwd()
正在改变 sys.path 使 paramiko 处理异常在运行时访问库。
我正在使用 paramiko 使 ssh 连接到我的 IP 地址,然后我在循环中执行某些命令。以前这工作正常但现在这个抛出异常
logging.basicConfig()
paramiko_logger = logging.getLogger("paramiko.transport")
paramiko_logger.disabled = True
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ipaddress = '169.254.30.39'
ssh.connect(ipaddress, port=22, username='root', password='')
Traceback (most recent call last):
File ".\Audio_connect.py", line 100, in <module>
Audio_connect_class('43210')
File ".\Audio_connect.py", line 10, in __init__
self.getreorderedzip(reorder)
File ".\Audio_connect.py", line 34, in getreorderedzip
self.execute(zip(newinput,newtestcasenames))
File ".\Audio_connect.py", line 44, in execute
ssh.connect(ipaddress, port=22, username='root', password='')
File "C:\Python27\lib\site-packages\paramiko\client.py", line 392, in connect
t.start_client(timeout=timeout)
File "C:\Python27\lib\site-packages\paramiko\transport.py", line 545, in start_client
raise e
RuntimeError: sys.path must be a list of directory names
当我打印 sys.path 时,这会打印我的文件所在的文件夹位置,而我知道 sys.path 通常会打印所有依赖文件夹的列表。我几乎尝试了所有方法,并通过了关于 Whosebug 的已经询问过的查询,但没有任何帮助。
*****编辑******** 工作代码
import paramiko, os, sys, time
import Audio_connect_Input
from LogFille import writelogfile
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('169.254.30.39', port=22, username='root', password='')
channel = ssh.invoke_shell()
channel_data = str()
MainConnectionId= str()
isError = False
input =[
Audio_connect_Input.A,
Audio_connect_Input.B,
Audio_connect_Input.C,
Audio_connect_Input.D,
Audio_connect_Input.E
]
testcaseNames = [
'A',
'B',
'C',
'D',
'E'
]
key = str()
elem = str()
#while True:
for (x,name) in zip(input,testcaseNames):
.... Execution steps...
sys.path result
C:\XYZ_CLI\cli_testexecutions
E:\python27
C:\WINDOWS\SYSTEM32\python27.zip
E:\Python27\DLLs
E:\Python27\lib
E:\Python27\lib\plat-win
E:\Python27\lib\lib-tk
E:\Python27\lib\site-packages
******非工作代码******
import paramiko, os, sys, time
from LogFille import writelogfile
import logging
import Audio_connect_Input
class Audio_connect_class(object):
def __init__(self, reorder):
print '__init___ ', sys.path
self.getreorderedzip(reorder)
def getreorderedzip(self, reorder):
print ''
input =[
Audio_connect_Input.A,
Audio_connect_Input.B,
Audio_connect_Input.C,
Audio_connect_Input.D,
Audio_connect_Input.E
]
testcaseNames = [
'A',
'B',
'C',
'D',
'E'
]
newinput = []
newtestcasenames = []
for idx in reorder:
newinput.append(input[int(idx)])
newtestcasenames.append(testcaseNames[int(idx)])
self.execute(zip(newinput,newtestcasenames))
def execute(self, received_zip):
logging.basicConfig()
paramiko_logger = logging.getLogger("paramiko.transport")
paramiko_logger.disabled = True
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ipaddress = '169.254.30.39'
ssh.connect(ipaddress, port=22, username='root', password='')
channel = ssh.invoke_shell()
channel_data = str()
MainConnectionId= str()
isError = False
key = str()
elem = str()
#while True:
for (x,name) in received_zip:
****Execution Steps*****
sys.path result
C:\XYZ_CLI\cli_testexecution_as_class
两个文件名相同,但保存在不同的文件夹中。
好吧,在花了很多时间解决这个问题之后,我发现 from LogFille import writelogfile
正在内部执行 os.sys.path = os.getcwd()
正在改变 sys.path 使 paramiko 处理异常在运行时访问库。