[英]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.