Импорт Python переопределяется стандартной библиотекой (Python 2.4)

У меня есть пакет python, который я пишу, и у меня проблема, когда стандартная библиотека импортируется вместо моих файлов из-за несовпадения имен.

Например, файловая структура, как показано ниже:

package / __ init __. Py

# No data in this file

package / module.py

#!/usr/bin/env python
print 'Loading module.py'
import signal

package / signal.py

#!/usr/bin/env python
print 'Loading signal.py'

Я получаю следующие результаты, когда запускаю это:

$ ./module.py
Loading module.py

Я хотел бы получить:

$ ./module.py
Loading module.py
Loading signal.py

Фактический вопрос:

Итак, когда я запускаю module.py , он сигнал импорта переходит в версию stdlib. Как я могу заставить module.py вместо этого импортировать signal.py?

Как отмечено в тегах, это должно работать на python-2.4.3. Хотя это старая версия, она включена в RHEL 5.


Дополнительная информация

Для получения дополнительной информации у меня явно есть следующая настройка:

[10:30pm][~/test] tree .
.
|-- package
|   |-- __init__.py
|   |-- module.py
|   `-- signal.py
`-- script

[10:30pm][~/test] cat script
#!/usr/bin/env python
from package import signal

[10:30pm][~/test] cat package/__init__.py

[10:30pm][~/test] cat package/module.py 
#!/usr/bin/env python
print "Loading module.py"
import signal

[10:30pm][~/test] cat package/signal.py 
#!/usr/bin/env python
print "Loading signal.py"

[10:30pm][~/test] python ./script
Loading signal.py

[10:32pm][~/test] python ./package/module.py 
Loading module.py

[10:32pm][~/test] python -m package.module
python: module package.module not found

Обратите внимание, что когда я запускал ./package/module.py, что оператор печати в ./ package / signal.py не был запущен. Это означает, что загруженный сигнал - это сигнал из stdlib.

6
задан jfs 19 December 2011 в 08:51
поделиться