Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python NameError: name 'ctypes' is not defined

I am trying to call a function from a custom .dll file. But when I try to load my library SDK.dll, i get the following error. I am following the indications found here: Python import dll

Does anyone know what the problem is? I only found references of this problem for MAC enviroments.

>>> from ctypes import *
>>> lib = ctypes.WinDLL('C:/Develop/test/SDK.dll')

Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    lib = ctypes.WinDLL('C:/Develop/test/SDK.dll')
NameError: name 'ctypes' is not defined
like image 263
toni Avatar asked Apr 08 '13 10:04

toni


2 Answers

By doing from ctypes import * you are pulling everything from ctypes module to local namespace, so you should be calling WinDLL directly:

>>> from ctypes import *
>>> lib = WinDLL('C:/Develop/test/SDK.dll')

Another (and as mentioned by NPE usually better) way to do it is to import just ctypes:

>>> import ctypes
>>> lib = ctypes.WinDLL('C:/Develop/test/SDK.dll')
like image 164
Piotr Hajduga Avatar answered Oct 04 '22 10:10

Piotr Hajduga


Change

from ctypes import *

to

import ctypes

The former imports all names from ctypes into the current namespace. It is generally considered to be a bad practice and is best avoided.

like image 33
NPE Avatar answered Oct 04 '22 11:10

NPE