簡體   English   中英

Python Cmd選項卡完成問題

[英]Python Cmd Tab Completion Problems

我有一個我正在為我們公司工作的應用程序。 它目前圍繞Python的Cmd模塊構建,並具有完成許多任務的選項卡。

但是出於某種原因,Tab完成目前僅適用於建築物中的一台機器 - 從其他機器運行腳本不允許完成選項卡。

這是違規的代碼部分:

def populate_jobs_list():
    global avail_jobs
    avail_jobs = os.walk(rootDir()).next()[1]
    print avail_jobs

...

def complete_job(self, text, line, start_index, end_index):
global avail_jobs
populate_jobs_list()
if text:
    return [
        jobs for jobs in avail_jobs
        if jobs.startswith(text)
    ]
else:
    return avail_jobs

def do_job(self, args):
    pass
    split_args = args.rsplit()
    os.environ['JOB'] = args
    job_dir = os.path.join( rootDir(), os.getenv('JOB'))
    os.environ['JOB_PROPS'] = (job_dir + '\\job_format.opm')
    if not os.path.isdir(job_dir):
        print 'Job does not exist. Try again.'
        return
    else:
        print('Jobbed into: ' + os.getenv('JOB'))
        return

populate_jobs_list()
prompt = outPrompt()
prompt.prompt = '\> '
prompt.cmdloop('Loading...')

我錯過了一些明顯的東西嗎? 只是為了澄清,在機器A上,標簽完成按預期工作。 當它在建築物中的任何其他機器上運行時,它無法完成。

檢查環境變量PYTHONSTARTUP是否設置正確。 它應該指向一個腳本,而這個腳本又需要這樣做:

try:
    import readline
except ImportError:
    sys.stdout.write("No readline module found, no tab completion available.\n")
else:
    import rlcompleter
    readline.parse_and_bind('tab: complete')

也許(某些部分)這只能在一台工作機器上正確完成?

也許readline模塊只能在一台工作機器上使用?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM