![](/img/trans.png)
[英]Python FileNotFoundError despite clearly having found the file
[英]Python: Function not seen despite clearly being there
下面的代碼調用了一個名為lago的方法。
#!/usr/bin/env python
#
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
#
import sys
class InstallTest():
"""Ru Ovirt System Tests"""
def run_command_checking_exit_code(command):
""" Runs a command"""
print("Command is " + str(command))
print(command.read())
print(command.close())
def lago():
"""run the conductor profiles required to install OLVM """
Log.test_objective('TODO')
run_command_checking_exit_code('ls -al')
"""
yum_list = ["epel-release", "centos-release-qemu-ev", "python-devel", "libvirt", "libvirt-devel", "libguestfs-tools", "libguestfs-devel", "gcc", "libffi-devel", "openssl-devel", "qemu-kvm-ev"]
for yum in yum_list
ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST + ' -t OS_OL7U6_X86_64_PVHVM_30GB -c 10.1.0.10 -o ' + self.log_jobdir_cc +'/vm_install_ol7.6', timeout=1000000)
if ret:
self.tc_fail('Creation of OLV Engine VM failed')
ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST +' -p ovirt-engine -c 10.1.0.10 -o ' + self.log_jobdir_cc + '/engine_deploy', timeout=1000000)
if ret:
self.tc_fail('Install of OLV Engine Host failed')
self.tc_pass('OLV Engine Host installed')
"""
def main():
lago()
main()
但是,它顯示在輸出中不存在
Traceback (most recent call last):
File "C:/Users/rafranci/Downloads/ovirt_st_setup.py", line 20, in <module>
class InstallTest():
File "C:/Users/rafranci/Downloads/ovirt_st_setup.py", line 65, in InstallTest
main()
File "C:/Users/rafranci/Downloads/ovirt_st_setup.py", line 63, in main
lago()
NameError: name 'lago' is not defined
據我所知,沒有任何理由 - 想法?
您必須實例化類才能調用其方法。
def main():
InstallTest().lago()
或者
def main():
install_test = InstallTest()
install_test.lago()
僅當您在類中添加self
參數時,這才有效。
def lago(self):
"""run the conductor profiles required to install OLVM """
Log.test_objective('TODO')
run_command_checking_exit_code('ls -al')
另外,我不明白您為什么需要為此上課。 如果您沒有任何理由,您可以刪除該類,然后您之前的代碼將按照評論中的建議正常工作。
檢查代碼中的更改:
class InstallTest():
"""Ru Ovirt System Tests"""
def run_command_checking_exit_code(command):
""" Runs a command"""
print("Command is " + str(command))
print(command.read())
print(command.close())
def lago(self):
"""run the conductor profiles required to install OLVM """
#Log.test_objective('TODO')
#run_command_checking_exit_code('ls -al')
"""
yum_list = ["epel-release", "centos-release-qemu-ev", "python-devel", "libvirt", "libvirt-devel", "libguestfs-tools", "libguestfs-devel", "gcc", "libffi-devel", "openssl-devel", "qemu-kvm-ev"]
for yum in yum_list
ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST + ' -t OS_OL7U6_X86_64_PVHVM_30GB -c 10.1.0.10 -o ' + self.log_jobdir_cc +'/vm_install_ol7.6', timeout=1000000)
if ret:
self.tc_fail('Creation of OLV Engine VM failed')
ret, msg, tup = self.client.run('/qa/conductor/tests/' + OSSE_OLV_VERSION + '/installer/installerfactory.py -s ' + OSSE_OLV_ENGINE_HOST +' -p ovirt-engine -c 10.1.0.10 -o ' + self.log_jobdir_cc + '/engine_deploy', timeout=1000000)
if ret:
self.tc_fail('Install of OLV Engine Host failed')
self.tc_pass('OLV Engine Host installed')
"""
def main(self):
self.lago()
def __init__(self):
self.main()
InstallTest()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.