Я столкнулся с довольно забавной ситуацией: я работаю в большом научном сотрудничестве, основной пакет программ которого основан на C ++ и python (все еще 2.7.15).Это сотрудничество также имеет несколько серверов (SL6) для запуска платформы.Поскольку я недавно присоединился к совместной работе, я получил инструкции о том, как настроить программное обеспечение и запустить его.Все отлично работает на сервере.Теперь есть причины не подключаться к серверу для выполнения простых задач или разработки кода, вместо этого предпочтительнее делать подобные вещи на локальном ноутбуке.Таким образом, я настроил виртуальную машину (докер) в соответствии с полученным рецептом, установил несколько вещей (fuse, cvmfs, образы докеров и т. Д.) И таким образом сумел подключить мой MacBook (OSX 10.14.2) ксервер, на котором необходимо найти некоторые библиотеки, чтобы программное обеспечение было скомпилировано и запущено.И через 2 часа он компилируется!Пока все хорошо ..
Теперь самое интересное: вы запускаете программное обеспечение, выполняя определенный скрипт python, который подается в качестве аргумента другому скрипту python.Еще не смешно.Но где-то в этом большом списке сценариев Python, порождающих друг друга, есть очень простая задача:
import logging
variable = logging.DEBUG
Это написано внутри скрипта, который называется Logging.py.Таким образом, скрипт и библиотека различаются только по первой букве: l или L. На сервере это работает идеально гладко.На моей локальной виртуальной машине я получаю ошибку
AttributeError: у объекта 'module' нет атрибута 'DEBUG'
Я проверил версии Python (which python
) и расположение библиотеки журналов (print logging.__file__
), и в обоих случаях я получаю одинаковый результат для обеих команд.Таким образом, запускается та же версия Python, и та же библиотека журналов, но в одном случае происходит смешивание с именем файла, который является источником библиотеки.
Поэтому мне интересно, есть ли какой-нибудь "файл соглашения" (например, .vimrc для vi), где-то, где эта проблема может быть решена путем установки некоторого параметра допуска в какое-то другое значение ...?
Большое спасибо за помощь!Конни