| Jeff Abrahamson on 20 Oct 2004 00:05:03 -0000 |
|
On Tue, Oct 19, 2004 at 03:07:03PM -0400, Jeff Abrahamson wrote:
> [65 lines, 221 words, 1602 characters] Top characters: eto\nsanr
>
> I'm trying to send a UDP packet in python.
>
> Below is a short code snippet I pulled from the web. It looks right
> to me. Other examples look basically the same.
>
> When I run it, I get an error, "AF_INET" is not defined.
>
> Anyone see what I might be doing wrong?
>
> BTW, is there a difference between the "import socket" and "from
> socket import *" ? I had thought they were the same thing, pick one.
> But I've seen some code on the net recently that does both.
>
> Thanks in advance.
>
> jeff@asterix:hw2a-jeffa $ ./s.py
> Traceback (most recent call last):
> File "./s.py", line 3, in ?
> import socket
> File "[...path...]/socket.py", line 13, in ?
> UDPSock = socket(AF_INET, SOCK_DGRAM)
> NameError: name 'AF_INET' is not defined
> jeff@asterix:hw2a-jeffa $
The problem, it turns out, was that I named my test file socket.py,
not realizing that python first looks in the current directory for
imports. Of course, you couldn't have known that, because I showed
the name above as s.py. I don't remember why I changed it. Probably
I forgot to copy and paste the command line and figured it didn't
matter. Fool that I am.
The answer to my other question, about the difference between import
and from...import seems to be related to name space. Here's a
sample. Note how AF_INET moves to the global name space from the
socket namespace.
jeff@asterix:jeff $ python
Python 2.3.4 (#2, Jul 5 2004, 09:15:05)
[GCC 3.3.4 (Debian 1:3.3.4-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> AF_INET
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'AF_INET' is not defined
>>> socket.AF_INET
2
>>>
jeff@asterix:jeff $ python
Python 2.3.4 (#2, Jul 5 2004, 09:15:05)
[GCC 3.3.4 (Debian 1:3.3.4-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from socket import *
>>> AF_INET
2
>>> socket.AF_INET
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: type object '_socketobject' has no attribute 'AF_INET'
>>>
jeff@asterix:jeff $
--
Jeff
Jeff Abrahamson <http://www.purple.com/jeff/> +1 215/837-2287
GPG fingerprint: 1A1A BA95 D082 A558 A276 63C6 16BF 8C4C 0D1D AE4B
A cool book of games, highly worth checking out:
http://www.amazon.com/exec/obidos/ASIN/1931686963/purple-20
Attachment:
signature.asc
|
|