2013-03-18 40 views
15

私はPython 2.7をWindow 7 OSに持っています。 py2exeを使用して、実行ファイルにproject.pyをパックしたいと思います。命令に続いて、私はsetup.pyファイル'libiomp5md.dll'が見つからないpy2exeを使用してPythonでソフトウェアをパック

from distutils.core import setup 
import py2exe 

setup(console=["project.py"]) 

を書いて、私は 'libiomp5md.dll'

from distutils.core import setup 
import py2exe 

setup(console=["SegmentationAccuracy.py"]) 

dll_excludes = ['libiomp5md.dll'] 

を除外しようとしたこのメッセージ

enter image description here

を得たが、常に同じエラーメッセージが表示される「エラー:libiomo5md.dll:そのようなファイルまたはディレクトリがありません」

私の実行可能ファイルが含まれています

import math 
import os 
import numpy as np 
import sys 
import ogr 
from progressbar import ProgressBar 
from shapely.geometry import Polygon 
nan = np.nan 
+0

左上のアイコンをクリックして「編集 - >マーク」に移動し、「入力」をクリックしてコピーすると、Windowsコンソールから出力をコピーできます – danodonovan

+0

この質問は10ヶ月です。あなたは答えを受け入れることができますか? – bdesham

答えて

9

libiomp5md.dllは、Intel Cコンパイラからである、とOpenMPマルチプロセッシング操作に使用されます。あなたのコードにはnumpyまたはインテルコンパイラでコンパイルされたコードが含まれていますので、py2exeビルドに依存しています。

あなたは単純にそれを使わないでビルドを作成することはできませんので、あなたのシステムでそれを見つけて、それを実行するディレクトリにコピーすることをお勧めしますpython setup.py py2exe。ヒント、私は[あなたが本当にそれを除外したい場合は、Visual StudioやMSYSを使って手動でnumpyをコンパイルする必要があります。] C:\Python27\Lib\site-packages\numpy\core

にコピーを持って

あなたが実行しているディレクトリにlibiomp5md.dllを持っていたら、 python setup.py py2exeあなただけexclude_dll行を削除する必要があります(あなたがそれを除くことにしたくないと...)

from distutils.core import setup 
import py2exe 

setup(console=["SegmentationAccuracy.py"]) 
+0

はい、コードがNumpyになるのは本当です。 –

29

私は同じ問題を抱えていたが、setup.pyimport numpyを呼び出すと、問題

を解決
+1

Hey @ChrisB。私はちょうどsetup.pyのフォルダにlibiomp5md.dllファイルを移動しました。 –

+0

が "import numpy"を追加してくれました。他のコンポーネントが特定の場所にいることに依存する可能性があるので、実際にはDLLを移動させたくはありません。 – Pierre

0

私は同じ問題を抱えていました。 マシンにnumpyをインストールしなければなりませんでした。mingw gccコンパイラで実行しました。 確認済み:C:¥Python27¥Lib¥site-packages¥numpy¥core¥

セットアップを起動する前に、作業ディレクトリにコピーしました。

setup.pyを調整するのに特別なことはありません。自動的に依存関係が見つかります。

0

OK、私は同じ問題がありました。 sklearnの.pydファイルがlibiomp5md.dllを参照していたことが判明しました。 Py2exeは、パス環境変数と.pydファイルと同じディレクトリに、DLLの2つの場所を探します。libiomp5md.dllもどちらにもありません。 Py2exeはあまり諦めて、c:\ Python27 \ lib \ site-packages \ numpy \ core \ libiomp5md.dllのような完全なパス名を与えるのではなく、後で "libiomp5md.dll"と言う。見つける。

私はせっかちです。 セットアップファイル内に行を追加しました。

os.environ ["PATH"] + = os.pathsep + os.path.dirname(numpy.core。ファイル

ここにlibiomp5md.dllがあります。今はすべてが動作します。セットアップを呼び出す前にコード内でこれを行うようにしてください。

関連する問題