Неизвестный флаг командной строки '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
означает "заменить это значением переменной среды name
Msgstr ". Но вы хотите определить новую переменную. Используйте вместо этого:
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 в выводе.
Решение предлагается с этого сайта: