Неизвестный флаг командной строки 'logtostderr'

Я запускаю эту программу SIFT на этом сайте: https://github.com/sanchom/sjm

Все дела идут хорошо, пока я не запускаю свою программу:

$ python extract_caltech.py --dataset_path=[path_to_your_101_Categories_directory] \
--process_limit [num_processes_to_spawn] --sift_normalization_threshold 2.0 -- sift_discard_unnormalized \
--sift_grid_type FIXED_3X3 --sift_first_level_smoothing 0.66 --sift_fast --sift_multiscale \
--features_directory [path_for_extracted_features]

В выводе я вижу эту строку тысячи раз:

ERROR: unknown command line flag 'logtostderr'

Я проверил некоторые решения, как предлагается здесь:

https://code.google.com/p/google-glog/issues/detail?id=17&q=glog%20gflagsBut

Что я сделал, так это добавил GLOG_logtostderr=1 перед тем, как запустить мою программу:

GLOG_logtostderr=1 ./my_application

Но это не сработало для нас.

Насколько я знаю, проблема связана со связью между Gflags и Glog. Но у меня пока нет идей, как это решить. Пожалуйста помоги. Спасибо!

2 ответа

$GLOG_logtostderr=1 не делает то, что вы ожидаете. $name означает "заменить это значением переменной среды nameMsgstr ". Но вы хотите определить новую переменную. Используйте вместо этого:

GLOG_logtostderr=1 ./my_application

(т.е. опустить $).

Я решил свою проблему. Это связано с тем, что glob IIRC macports создан не с помощью gflags, а с помощью сценариев python --logtostderr. Так что просто удалите --logtostderr из скрипта python, запустив скрипт:

find . -name '*.py' -exec perl -i -p -e 's/--logtostderr//' {} \;

Чтобы выяснить, затронуты ли вы, запустите

ldd libglog.so

и проверьте, есть ли libgflags в выводе.

Решение предлагается с этого сайта:

https://code.google.com/p/google-glog/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary&groupby=&sort=&id=206

Другие вопросы по тегам