2014-11-19 1 views
0

라이브러리 assimulo (미분 방정식 해결사)를 사용하는 소프트에서 py2exe를 사용하여 실행 파일을 작성하려고합니다.py2exe 및 assimulo - 대수적 모듈 없음

ImportError: No module named algebraic

정확한 오류 메시지는 다음과 같습니다 : 발생한 문제는 실행 중에 내가받을 수있다

다음
Traceback (most recent call last): 
    File "main.py", line 89, in <module> 
    from simulation.simulation import Simulation 
    File "simulation\simulation.pyc", line 18, in <module> 
    manages all the action linked to a simulation, like running, saving, replay, etc... 
    File "solver\assimuloSolver.pyc", line 7, in <module> 
    Explicit solver to choose in the list of assimulo solvers: 
    File "assimulo\solvers\__init__.pyc", line 25, in <module> 
    File "assimulo\solvers\kinsol.pyc", line 12, in <module> 
    File "assimulo\solvers\kinsol.pyc", line 10, in __load 
    File "kinsol.pyx", line 1, in init assimulo.solvers.kinsol (assimulo\solvers\kinsol.c:19711) 
ImportError: No module named algebraic 

QE가 내 문제를 생산 라인 (7) 것을 볼 수 있으며,이 라인은

입니다

from distutils.core import setup 
from py2exe.build_exe import py2exe 
import sys 
from glob import glob 
import matplotlib 

data_files = [("Microsoft.VC90.CRT", glob(r'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*'))] 
data_files.extend(matplotlib.get_py2exe_datafiles()) 
sys.path.append("C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\redist\\x86\\Microsoft.VC90.CRT") 

excludes = ['_gtkagg', '_tkagg'] 
includes = [ 
      "scipy.sparse.csgraph._validation", 
      "scipy.special._ufuncs_cxx", 
      ] 

opts = { 
    "py2exe": { 
     "includes":includes, 
     "excludes":excludes, 
    } 
} 

setup(name = "MySoft", 
     version = "0.1", 
     data_files=data_files, 
     windows=[{"script":"main.py"}], options=opts) 
: 는
from assimulo.solvers import Radau5DAE 

py2exe에 대한 setup.py 파일은 다음과 같습니다

누군가가 단서를 가지고 있다면, 나는 매우 흥미로울 것이다. 감사합니다

+0

대수학은 어디서 오는가? 그것은 assimulo 패키지에 있다면 당신은 '패키지'옵션을 사용하여 py2exe를 포함시킬 수 있어야합니다. – Werner

+0

예, assimulo 때문이며 패키지는 C : \ Python27 \ Lib \ site-packages \ assimulo에 있습니다. py2exe : { "packages": [ 'algebraic']} 옵션을 사용하면 패키지를 어떻게 지정할 수 있습니까? 전체 경로를 제공해야합니까? 감사합니다 – Yvus

답변

0

내 문제에 대한 해결책은가, 이런 식으로 대수 패키지 옵션을 포함에 추가 얻었다 :

includes = ["assimulo.algebraic"] 

또한 라이브러리가 PATH 변수에 추가되어 있는지 확인해야합니다. 그렇지 않은 경우, 하나는 단순히 건배 도움에 대한 내 경우 설치 파일에

sys.path.append("C:\\Python27\\Lib\\site-packages\\assimulo") 

을했다 ("라이브러리의 경로")

감사를 sys.path.append을 추가 할 수 있습니다

0

가끔 패키지 옵션에 나열된 경우에도 py2exe가 패키지를 포함하지 못했지만 setup.py에서 패키지를 가져 오면 작동하기 시작 함을 발견했습니다. setup.py :

import assimulo 

당신은 가끔 (이 assimulo 수입에 설정을 많이 수행되어 사용), 심지어

if False: 
    import assimulo 

이 작동 찾을 수 있습니다.

+0

안녕하세요, 저는 방금 솔루션을 시도했지만 py2exe 패키지를 찾을 수 없습니다 : 대수학이라는 모듈이 없습니다. assimulo, 심지어 assimulo.algebraic도 패키지 목록에 '대수'를 추가하면서 가져 오려고했습니다. 도와 주셔서 감사합니다 – Yvus

+0

대수학이 실제로 .pyd 파일이라는 사실을 깨달았습니다. 그 이유는 찾아 내지 못했을까요? – Yvus

+0

py2exe가 찾지 못하는 _reasons_ 중 하나 일 수 있습니다. 실행 파일과 동일한 디렉토리에서 exe가 찾을 수있는 곳에 존재해야하는 것처럼 보입니다. –