2014-10-17 5 views
0

그것의 주위에 이동하는 무엇을 테스트라고 말한다 전에이 페이지 오른쪽 아래이 작은 튜토리얼을 http://www.roguebasin.com/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod,_part_1파이썬 - 내가 "찾을 수 없습니다 모듈을"프로그램을 실행하려고 할 때마다 오류가

약간의 방법을 할 노력하고있어 너는 지금까지 가지고있다. Pycharm을 사용하고 있는데, 외부 라이브러리를 사용하거나 처음 사용하는 사람이라면 무엇이든 사용할 수 있습니다.

이것은 내가 지금까지 무엇을하고 그들의 예에서 정확히 무엇을 : 나는 그것을 실행할 때마다

import libtcodpy as libtcod 

#actual size of the window 
SCREEN_WIDTH = 80 
SCREEN_HEIGHT = 50 

LIMIT_FPS = 20 #20 frames-per-second maximum 


libtcod.console_set_custom_font('terminal.png', libtcod.FONT_TYPE_GREYSCALE | libtcod.FONT_LAYOUT_TCOD) 

libtcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, 'python/libtcod tutorial', False) 

libtcod.sys_set_fps(LIMIT_FPS) 

while not libtcod.console_is_window_closed(): 

    libtcod.console_set_default_foreground(0, libtcod.white) 

    libtcod.console_put_char(0, 1, 1, '@', libtcod.BKGND_NONE) 

    libtcod.console_flush() 

나는이 오류가 발생합니다.

Traceback (most recent call last): 
    File "D:\Programming\Project 1\Rogue Like\libtcodpy.py", line 57, in <module> 
    _lib = ctypes.cdll['./libtcod-mingw.dll'] 
    File "C:\Python34\lib\ctypes\__init__.py", line 426, in __getitem__ 
    return getattr(self, name) 
    File "C:\Python34\lib\ctypes\__init__.py", line 421, in __getattr__ 
    dll = self._dlltype(name) 
    File "C:\Python34\lib\ctypes\__init__.py", line 351, in __init__ 
    self._handle = _dlopen(self._name, mode) 
OSError: [WinError 126] The specified module could not be found 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "D:/Programming/Project 1/Rogue Like/firstrl.py", line 1, in <module> 
    import libtcodpy as libtcod 
    File "D:\Programming\Project 1\Rogue Like\libtcodpy.py", line 60, in <module> 
    _lib = ctypes.cdll['./libtcod-VS.dll'] 
    File "C:\Python34\lib\ctypes\__init__.py", line 426, in __getitem__ 
    return getattr(self, name) 
    File "C:\Python34\lib\ctypes\__init__.py", line 421, in __getattr__ 
    dll = self._dlltype(name) 
    File "C:\Python34\lib\ctypes\__init__.py", line 351, in __init__ 
    self._handle = _dlopen(self._name, mode) 
OSError: [WinError 126] The specified module could not be found 

감사

+0

libtcodpy를 프로젝트와 동일한 디렉토리로 이동해보십시오. – Dan

+0

이미 해당 디렉토리의 복사본이 있습니다. – user2912641

+0

'libtcod-VS.dll' 또는'libtcod-mingw.dll'도 프로젝트와 같은 디렉토리에 있습니까? – abarnert

답변

1

난 당신이 또한 프로젝트 디렉토리에 libtcod-VS.dll 또는 libtcod-mingw.dll뿐만 아니라 libtcodpy.py를 복사 있으리라 믿고있어. 또한 SDL.dllarial10x10.png입니다. 그렇지 않다면 다시 돌아가 Setting it up 지침을 다시보십시오.

당신이 가진다면, 이것은 정말로 당신의 잘못이 아니며, 그것들입니다.

libtcodpy.py은 현재 작업 디렉토리에서 libtcod-VS.dll 또는 libtcod-mingw.dll DLL을 가져 오려고 시도합니다. 이 줄에서 저를 볼 수 있습니다 현재 작업 디렉토리가 libtcodpy.py가에있는 디렉토리 이외의 것을 일어나는 경우

_lib = ctypes.cdll['./libtcod-mingw.dll'] 

그래서, 거기를 찾을 수 없습니다.

이것은 바보 같은 짓입니다. Choice of code editor 섹션에서 제안하는 것을 수행하고 항상 콘솔 ("DOS 프롬프트")에서 스크립트를 실행하는 경우 (명시 적 경로없이 항상 실행하는 한) 작동하지만 실제로는 안됩니다 그것에 의존합니다.

그래도 가장 간단한 해결 방법은 다음과 같습니다. PyCharm 대신 프로그램을 콘솔에서 실행하십시오.


또는 프로젝트 디렉토리를 작업 디렉토리로 사용하여 프로젝트를 실행하도록 PyCharm을 구성 할 수 있습니다.

설정 방법은 몇 가지가 있지만 실제로는 실행/디버그 구성 대화 상자 (실행 메뉴의 구성 편집 ...에서 찾을 수 있음)입니다. 이 대화 상자를 열고 펼침 삼각형을 기본값으로 열고 파이썬을 클릭 한 다음 오른쪽의 "작업 디렉토리 :"를 찾으십시오. 버튼을 클릭하고 프로젝트 디렉토리 (또는 libtcod-VS.dll 또는 libtcod-mingw.dll을 입력 한 위치)를 선택합니다.


또는 당신은 오히려 현재 작업 디렉토리에서보다, 자신의 옆에 DLL을 찾을 수 있도록 libtcodpy.py을 편집 할 수 있습니다. 필요한 네 가지 작은 변경 사항이 있습니다.

먼저 import 상단의 문장 중간에 import os이 없으면 추가하십시오.

다음, 바로 import 문 다음에,이 추가

modpath = os.path.dirname(os.path.abspath(__FILE__)) 

이제 시작하는 두 줄을 검색 _lib = ctypes.dll (또는 바로 역 추적에서 줄 번호보고) 다음과 같이 변경할 :

_lib = ctyles.cdll(os.path.join(modpath, 'libtcod-mingw.dll')) 

_lib = ctyles.cdll(os.path.join(modpath, 'libtcod-VS.dll')) 
0

저는 Emacs와 Python 2.7을 사용하고 있지만 동일한 문제를 해결하기 위해 고심하고 있습니다.

나를 위해 해결 된 해결책은 64 비트 파이썬 대신 32 비트 파이썬을 설치하는 것이 었습니다. libtcod의 .dll은 32 비트이고 Windows의 64 비트 Python은 32 비트 .dll과 호환되지 않습니다.

또한 libtcod가 python 3과 호환되는지 확인하고 싶을 수도 있습니다. 주제가 논의 된 두 곳을 찾았지만 libtcod-1.5.1이 나중과 호환되는지는 알 수 없습니다. xs.

libtcod 폴더에서 samples_py.py를 실행하여이 두 가지 문제를 테스트하는 것이 좋습니다. 예를 들어 폴더 설정 또는 경로가 아닌 Python 버전을 실행하는 것입니다.