試圖在循環中調用python3.4類方法。 但是得到這個「TabError: inconsistent use of tabs and spaces in indentation
」「for循環」(pyvmomi)中的python3.4縮進錯誤
我在「vim」和「gedit/sublime」中查看了代碼,並且它們沒有顯示明顯的錯誤。
它不一定是縮進,但其他一些錯誤?
謝謝。
$ cat pyvmomi-loop.py
from __future__ import (absolute_import, division,
print_function, unicode_literals)
from builtins import *
import atexit
import sys
sys.path.insert(0, '/usr/lib/python2.7/site-packages')
import pyVmomi
import argparse
import atexit
import itertools
from pyVim.connect import SmartConnect, Disconnect
import humanize
from pyVim import connect
from pyVmomi import vmodl
from pyVmomi import vim
## cred
host="1.2.3.4"
user="aa\bb"
password="[email protected]"
port=443
## Ignore certificate error
import ssl
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
pass
else:
print ("Ignoring SSL Error")
ssl._create_default_https_context = _create_unverified_https_context
## Fetch id an dpw
def GetArgs():
parser = argparse.ArgumentParser(
description='Process args for retrieving all the Virtual Machines')
parser.add_argument('-s', '--host', required=True, action='store',
help='Remote host to connect to')
parser.add_argument('-o', '--port', type=int, default=443, action='store',
help='Port to connect on')
parser.add_argument('-u', '--user', required=True, action='store',
help='User name to use when connecting to host')
parser.add_argument('-p', '--password', required=False, action='store',
help='Password to use when connecting to host')
args = parser.parse_args()
return args
## Method to fetch VM info
def printHost(host):
try:
summary = host.summary
stats = summary.quickStats
hardware = host.hardware
cpuUsage = stats.overallCpuUsage
memoryCapacity = hardware.memorySize
memoryCapacityInMB = hardware.memorySize/MBFACTOR
memoryUsage = stats.overallMemoryUsage
freeMemoryPercentage = 100 - (
(float(memoryUsage)/memoryCapacityInMB) * 100
)
print ("--------------------------------------------------")
print ("Host name: ", host.name)
print ("Host CPU usage: ", cpuUsage)
print ("Host memory capacity: ", humanize.naturalsize(memoryCapacity,
binary=True))
print ("Host memory usage: ", memoryUsage/1024, "GiB")
print ("Free memory percentage: " + str(freeMemoryPercentage) + "%")
print ("--------------------------------------------------")
except Exception as error:
print ("Unable to access information for host: ", host.name)
print (error)
pass
## Main method
def main():
# argsCred = GetArgs()
try:
service_instance = connect.SmartConnect(host=host,
user=user,
pwd=password,
port=port,
)
## What to do when exiting
atexit.register(connect.Disconnect, service_instance)
##Content object
content = service_instance.RetrieveContent()
container = content.rootFolder # starting point to look into
viewType = [vim.VirtualMachine] # object types to look for
recursive = True # whether we should look into it recursively
## Create a view
containerView = content.viewManager.CreateContainerView(
container, viewType, recursive)
## Loop through all obhects to return name and VMware tools version
children = containerView.view
for child in children:
if child.summary.guest is not None:
try:
tools_version = child.summary.guest.toolsStatus
osFam = child.summary.guest.guestId
print("VM: {}, VMware-tools: {}".format(child.name, tools_version))
print("VM: {}, OS Fam: {}".format(child.name, osFam))
except:
print("Vmware-tools: None")
except vmodl.MethodFault as error:
print("Caught vmodl fault : " + error.msg)
return -1
return 0
## Start program
if __name__ == "__main__":
main()
那是整個py文件。但是你看到其他縮進可能在這個地方錯誤地標記縮進嗎?謝謝! – SndLt
你對vim的看法只不過是一個壞主意。你應該刪除它,因爲它不相關。 –
剛剛得到了pycharm。我相信這會很有幫助。非常感謝! – SndLt