質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

2回答

13380閲覧

Python 2.7に64bit版でgensimを入れたと思うのですが、なぜか「有効な Win32 アプリケーションではありません。」と表示されてしまいます

Browniet

総合スコア12

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2015/08/08 11:01

編集2015/08/08 12:48

環境としては、Windows 8.1 64bitです。Python 2.7を使用しています。
まずは実行した手順を書きます。

最初にsetuptools,pip,wheelをインストールしました。
numpyやscipyには公式の64bit版のものがないということなので、
ここ(Unofficial Windows Binaries for Python Extension Packages)から、

  • numpy-1.9.2+mkl-cp27-none-win_amd64.whl
  • gensim-0.12.1-cp27-none-win_amd64.whl
  • scipy-0.16.0-cp27-none-win_amd64.whl

をダウンロードしました。

次に「pip install」を使い、numpy,scipy,gensimのインストールを試みました。
なお、「pip freeze」の結果はこうなっています(実際の場所はマイドキュメントの奥です)。

C:\Users>pip freeze
You are using pip version 7.0.1, however version 7.1.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
boto==2.38.0
bz2file==0.98
gensim==0.12.1
mecab-python==0.996
numpy==1.9.2
scipy==0.16.0
six==1.9.0
smart-open==1.2.1
wheel==0.24.0

これでインストールが終わったと思ったのですが、Pythonで実行すると以下のようになりました。

C:\Users>py
Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on wi
n32
Type "help", "copyright", "credits" or "license" for more information.

import numpy
import scipy
import gensim

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\gensim_init_.py", line 6, in <module>
from gensim import parsing, matutils, interfaces, corpora, models, similarit
ies, summarization
File "C:\Python27\lib\site-packages\gensim\models_init_.py", line 7, in <mo dule>
from .hdpmodel import HdpModel
File "C:\Python27\lib\site-packages\gensim\models\hdpmodel.py", line 41, in <m odule>
import scipy.special as sp
File "C:\Python27\lib\site-packages\scipy\special_init_.py", line 609, in <
module>
from .lambertw import lambertw
ImportError: DLL load failed: %1 は有効な Win32 アプリケーションではありません。


64bit版のwhlでやったのでこれで問題ないかと思ったのですが、
何が原因でこうなってしまったのか、どうすればimport出来るようになるのか皆目見当がつきません。
アドバイスよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

今更思い出してこれを書いているのは微妙かもしれませんが、Anaconda をご存知でしょうか。
数値計算パッケージ全部入りになっているらしいので、もしかするとこれ1つで環境が整うかもしれません。

自分は使ったことがないので詳細をよく知らないのですが、一応お伝えしておきます。

投稿2015/08/10 05:18

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/08/10 05:19

コメントと間違えて回答を増やしてしまいました。ごめんなさい。
Browniet

2015/08/12 12:42

返信が遅れてしまって申し訳ありません。 Anaconda、凄い便利そうですね。gensimもnumpyもscipyも入ってるみたいですし、もうこれ以上ないくらい簡単そうです。 ありがとうございます! やってみます!
guest

0

ベストアンサー

バージョンは違いますが、こんな感じでパッケージインストール出来てますでしょうか。"5) verify" に書かれているように、認識できるパッケージのバージョン確認もしましょう。

ここまでの設定・確認は出来ていて動かないとすると、同じ名称のDLLが32/64bitで2つ入っていて、先に32bit版を見つけてしまっているかもしれません。DLLが衝突している場合は環境変数を64bit版向けにちゃんと定義して、DLL周りで衝突が起こらない状況を用意する必要があるかと。
このあたりに環境変数やパッケージ検索周りの情報が記載されてます。

パッケージ検索については、ここも見た方が良かったので追記しました。

投稿2015/08/08 13:55

編集2015/08/08 22:32
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Browniet

2015/08/08 17:34

教えて頂いた「How to set up a 64 bit version of NumPy on Windows」ですが、rcではありませんでしたが大体私の方でもこんな感じでインストールを行いました。 。一応確認したものを貼りつけます。 ------------------------------------------- Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import scipy >>> numpy.__version__ '1.9.2' >>> scipy.__version__ '0.16.0' >>> exit() C:\Windows\system32>pip freeze boto==2.38.0 bz2file==0.98 gensim==0.12.1 mecab-python==0.996 numpy==1.9.2 scipy==0.16.0 six==1.9.0 smart-open==1.2.1 wheel==0.24.0 C:\Windows\system32>pip --version pip 7.1.0 from C:\Python27\lib\site-packages (python 2.7) C:\Windows\system32> -------------------------------------------- その次のページですが、申し訳ありません。何をすればいいのか理解できませんでした……。 そもそも今回問題になっているのはどのDLLファイルなのか。今求められているDLLのファイルを環境変数のPATHに追加すればよい……のでしょうか。違う気がします……。 「モジュールの検索」の所が今回に関わるところかと思いますが、 「追加のフォルダを Python の import 機構の検索対象に含めることもできます。 PYTHONPATH を 環境変数 で解説されているように利用し、 sys.path を変更してください。 」 の部分でしょうか? システム環境変数にはPYTHONPATHというものはありませんでしたので、これを追加して正しい64bitのDLLのパスを登録すればよいかと考えましたが、合っていますでしょうか。 必要かどうかわかりませんが、regeditで見たところ、 「HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.7\PythonPath」のは「C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk」 「HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.7\Modules」は「値の設定なし」 「HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.7\InstallPath」は「C:\Python27\」 と表示されていました。 また、sys.pathを調べてみると、以下のようになりました。 ------------------------------------- >>> >>> import sys >>> sys.path ['', 'C:\\Python27\\lib\\site-packages\\setuptools-18.1-py2.7.egg', 'C:\\Windows \\SYSTEM32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Pytho n27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\ \lib\\site-packages'] >>> ----------------------------------- わからないことばかりで申し訳ありませんが、よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2015/08/08 22:54 編集

 まずはそもそもの話に戻りますが「ImportError: DLL load failed: %1 は有効な Win32 アプリケーションではありません。」というエラー。これは「from .lambertw import lambertw」でscipyモジュール関連のDLLの読み込み失敗により発生しています。  64bit環境でこれが出るパターンの多くは、Python実行環境とDLLの環境不一致です。  1つは、32/64bitの齟齬なので、そこの確認が必要です。  これは環境変数:PATH 及び PYTHONPATH の設定が問題になることが多いので、前述したページをよく読んで理解して欲しいです。(コメントにある C:¥Python27 がインストール先であるなら、その下の site-packages の下あたりに dll, pyd ファイルが入っているはずで、それが認識できていれば読み込んでくれるはずなんですが。)  レジストリ設定の方はアイコンのダブルクリックでスクリプト起動しているなら関係ありますが、コマンドプロンプトを使ってPythonスクリプトを実行する場合は関係ないです。  もう1つあるとすると、ランタイムバージョンの不一致も考えられるんですが、これは実行時エラーになるように思うのでimport時に出るのかどうか、ちょっとわかりません。申し訳ないです。。  あと、ここ(http://www.lfd.uci.edu/~gohlke/pythonlibs/)などを読むとPython2.7系は VC++2008 redistributable packages.が必要ということが分かります。VC++2008再配布パッケージが入ってない場合は、それも入れておきましょう。  こちらから言えるのはこんな程度ですが、参考になれば幸いです。
Browniet

2015/08/09 14:25

pydってDLLと同じようなものだったんですね……DLLばかり探していました……。 ということで、環境変数にPYTHONPATHを、lambertw.pydのある「C:\Python27\Lib\site-packages\scipy\special」を追加して実行してみたところ、以下のようになりました。 -------------------------------- C:\Users\>py Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on wi n32 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import scipy >>> import MeCab >>> import sys >>> import gensim Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\site-packages\gensim\__init__.py", line 6, in <module> from gensim import parsing, matutils, interfaces, corpora, models, similarit ies, summarization File "C:\Python27\lib\site-packages\gensim\models\__init__.py", line 7, in <mo dule> from .hdpmodel import HdpModel File "C:\Python27\lib\site-packages\gensim\models\hdpmodel.py", line 41, in <m odule> import scipy.special as sp File "C:\Python27\lib\site-packages\scipy\special\__init__.py", line 601, in < module> from . ufuncs import * ImportError: No module named ufuncs >>> sys.path ['', 'C:\\Python27\\lib\\site-packages\\setuptools-18.1-py2.7.egg', 'C:\\Python27\\Lib\\site-packages\\scipy\\special', 'C:\\Windows\\SYSTEM32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages'] ---------------------------------- これは32bit/64bitの問題は解決したと考えても良いのですよね、恐らく。 次は別のものが出ていますが……。こちらはufuncsがある場所をPYTHONPATHに追加しても「module object has no attribute BufferedIOBase」と出てきました。難しいですね……。 今回の質問内容についてはこれで解決したように思うので、一旦質問はこれまでとさせて頂きたいと思います(恐らくその方が良いですよね……)。 pikovoltさん、丁寧なアドバイスをありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問