Доступ запрещен при загрузке DLL с ctypes на Vista - PullRequest
1 голос
/ 07 октября 2009

У меня проблемы с использованием ctypes. Я пытаюсь запустить следующий проект на Vista.

http://sourceforge.net/projects/fractalfrost/

Я использовал проект ранее в Vista, и у меня не было проблем. Я не вижу никаких изменений в SVN, потому что это, я думаю, что-то локальное для этой машины. На самом деле я вообще не могу загружать dll с помощью ctypes.

Bobby@Teresa-PC ~/fr0st-exe/fr0st/pyflam3/win32_dlls
$ ls
Flam4CUDA_LIB.dll cudart.dll glew32.dll libflam3.dll pthreadVC2.dll

Bobby@Teresa-PC ~/fr0st-exe/fr0st/pyflam3/win32_dlls
$ python
Python 2.6.3 (r263rc1:75186, Oct 2 2009, 20:40:30) [MSC v.1500 32 bit (Intel)]
on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import *
>>> flam3_dll = CDLL('libflam3.dll')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python26\lib\ctypes\__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 5] Access is denied
>>> flam3_dll = CDLL('.\\libflam3.dll')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python26\lib\ctypes\__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 5] Access is denied
>>> import os
>>> flam3_dll = CDLL(os.path.abspath('libflam3.dll'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python26\lib\ctypes\__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 5] Access is denied
>>>

Есть какие-нибудь идеи, что могло бы вызвать это, а еще лучше - все равно?

1 Ответ

2 голосов
/ 07 октября 2009

Я знаю, это звучит глупо, но так как вы не упомянули об этом явно:

Вы проверяли права доступа к файлу, к которому пытаетесь получить доступ? Возможно, вы, знаете, не имеете доступа к файлу для чтения или выполнения.

...