-----Original Message-----
From: python-list-bounces+ramit.prasad=jpmorgan....@python.org 
[mailto:python-list-bounces+ramit.prasad=jpmorgan....@python.org] On Behalf Of 
Jack Bates
Sent: Tuesday, September 13, 2011 5:28 PM
To: python-list@python.org
Subject: ImportError: cannot import name dns

Why is the following ImportError raised?

$ ./test
Traceback (most recent call last):
  File "./test", line 3, in <module>
    from foo import dns
  File "/home/jablko/foo/dns.py", line 1, in <module>
    from foo import udp
  File "/home/jablko/foo/udp.py", line 1, in <module>
    from foo import dns
ImportError: cannot import name dns
$

I reproduce this error with the following four files and five lines:

== foo/dns.py ==
from foo import udp

== foo/udp.py ==
from foo import dns

== foo/__init__.py ==
(empty)

== test ==
#!/usr/bin/env python

from foo import dns


===========================================================================
 
It is a circular dependency. Dns will try to import udp which will in turn 
import dns (again) in an endless cycle; instead an ImportError is raised. 

Circular dependency is a Bad Thing.

Ramit


Ramit Prasad | JPMorgan Chase Investment Bank | Currencies Technology
712 Main Street | Houston, TX 77002
work phone: 713 - 216 - 5423


This email is confidential and subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.  
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to