2010-08-18 2 views
5

저는 .Net4 용 IronPython 2.6.1 SharpDevelop 3.2.0을 사용하고 있습니다. .net4 용 IronPython 2.6에서 sqlite3 사용

는 IronPython의이 모듈을 사용하여 sqlite3를 기능에 액세스하도록하려면 : IronPython.SQLite

내 프로그램이 GUI 응용 프로그램입니다 및 SQLite는 데이터베이스에 액세스 할 수 있습니다. IronPython의 ipy.exe 인터프리터를 통해 프로그램을 시작할 때 모든 것이 (데이터베이스 액세스 포함) 완벽하게 작동합니다. 내가 실행에 SharpDevelop로 컴파일 된 프로그램을 시작하려고하면

는하지만, 나는 예외를 얻을 :

IronPython.Runtime.Exceptions.ImportException :

_sqlite3라는 이름의 모듈 없다 이 예외에 대한 이유는 dbapi2.py에 있습니다

을 _sqlite3 수입 *

에서

IronPython 콘솔에서 _sqlite3을 가져 와서 의도 한대로 사용할 수 있습니다.

이미 SharpDevelop에 sqlite3 모듈의 경로를 지정했지만 IronPython 또는 sqlite3-module 폴더에 _sqlite3이라는 파일이 없습니다.

내 프로그램의 컴파일 된 버전을 빌드 할 때 이러한 문제가 발생할 수있는 점을 알려주십시오.

대단히 감사합니다.

답변

4

아무 곳에서나 _sqlite3 파일이 없습니다. IronPython.Sqlite.dll은 _sqlite3이라는 모듈을 제공합니다.

웹 사이트 지침을 따라 IronPython.Sqlite.dll을 DLL 폴더에 넣으면 SharpDevelop에서 작동하지 않는 것일 수 있습니다. ipy.exe를 실행할 때 암시 적으로 DLL 폴더의 모든 DLL에 대한 참조가 추가됩니다. SharpDevelop는 실행 파일을 빌드 할 때 IronPython을 실행하는 작은 스텁이지만 IronPython의 설치된 버전을 알지 못하므로 DLLs 폴더에서 아무 것도로드하지 않습니다.

귀하의 최고의

import clr 
clr.AddReference("IronPython.SQLite.dll") 

을 포함하는 기본 스크립트를 수정 한 다음 IronPython.SQLite.dll는 EXE와 같은 디렉토리에 있는지 확인하는 것입니다. 어쨌든 이것은 내가 선호하는 옵션이며 기회가 생기면 지침에 추가해야합니다.

3

어떻게 든 DLL을 참조하도록 알려 주셨습니다.

몇 번 실패한 후에 프로그램을 성공적으로 컴파일 할 수 있었지만 DLL을 포함시키는 것이 조금 까다 롭습니다.

  1. DLL을 SharpDevelop References에 추가했습니다.
  2. 나는 내 스크립트에 다음 코드를 추가했다 :

import sys import nt import clr sys.path.append(nt.getcwd()) clr.AddReferenceToFile('IronPython.SQLite.dll')

이 내 실행 디렉토리에 DLL을 가리 키도록 필요했다.

도움 주셔서 감사합니다.