У меня была странная проблема с импортом в python 2.7
У меня есть приложение в каталоге, в котором есть несколько подкаталогов и несколько приложений python, работающих одновременно, используя Pyro Name Server для связи друг с другом.
Когда я запускаю одно из моих приложений, оно падает при импорте при вызове одного из вспомогательных методов.
Вот исключение:
Traceback (most recent call last):
File "ps_logic.py", line 15840, in <module>
ps_logic = PSLogic(pyro_objects, cfg_handler, status_distributor, voip_processing)
File "ps_logic.py", line 590, in __init__
self.smarthopper_initial_check()
File "ps_logic.py", line 12824, in smarthopper_initial_check
counters_compared = self.smarthopper_maintenance_action()
File "ps_logic.py", line 12928, in smarthopper_maintenance_action
status = self.smart_hopper_logic.status_get()
File "/home/app_core/flexcore/003-480/ps_logic/smart_devices_logic.py", line 203, in status_get
return SmartStatusAugmented(self.smart_obj.queue_status_get(), self.smart_obj)
File "/usr/lib/python2.7/site-packages/Pyro/core.py", line 381, in __call__
return self.__send(self.__name, args, kwargs)
File "/usr/lib/python2.7/site-packages/Pyro/core.py", line 456, in _invokePYRO
return self.adapter.remoteInvocation(name, Pyro.constants.RIF_VarargsAndKeywords, vargs, kargs)
File "/usr/lib/python2.7/site-packages/Pyro/protocol.py", line 497, in remoteInvocation
return self._remoteInvocation(method, flags, *args)
File "/usr/lib/python2.7/site-packages/Pyro/protocol.py", line 536, in _remoteInvocation
answer = pickle.loads(answer)
ImportError: No module named drivers.smart.smart_common_const
ясно сказано, что он не может импортировать drivers.smart.smart_common_const
НО проблема в том, что в моем коде нет этой строки.
Если я пытаюсь найти, в каком файле находится эта строка (потому что я уже исправил ее в некоторых), он ничего не находит:
app_core@003-481 ~/flexcore/003-480 $ grep -R "from drivers.smart.smart_common_const import" .
./drivers/.svn/pristine/23/23e13acbf9e604f179d4625e18b2b992116a98a1.svn-base:from drivers.smart.smart_common_const import *
./drivers/.svn/pristine/65/65655973d3c70a16cc982db59db8f2989366524b.svn-base:from drivers.smart.smart_common_const import *
./drivers/.svn/pristine/3b/3ba2e2518e64db9188b63247b763926544bddd90.svn-base:from drivers.smart.smart_common_const import *
app_core@003-481 ~/flexcore/003-480 $
но svn файлы.
Я запускаю свое приложение на python с опцией -v
, чтобы выяснить, куда оно пытается импортировать из этого файла. НО она не возвращает nay строку отладки до этого исключения, поэтому я предполагаю, что это что-то импортированное ранее или ничего не показывает, если импорт не удался.
Я также удалил все файлы *.pyc
и перезагрузил компьютер, чтобы убедиться, что в памяти не осталось отметок, но проблема осталась.
Есть ли другой вариант, как узнать, в чем проблема? Я начинаю отчаяться ..