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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1577閲覧

Pythonでimport pandasがエラーを出す

yohoho

総合スコア2

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

1クリップ

投稿2021/05/20 14:11

前提・実現したいこと

Pythonでimport pandasがエラーを出し、困っています。
”scrapying.py”を動かそうとして下記のエラーが出ます。

エラーメッセージ

Traceback (most recent call last): File "scraping.py", line 1, in <module> import pandas as pd File "C:\Users\skybl\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\__init__.py", line 11, in <module> __import__(dependency) File "C:\Users\skybl\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\__init__.py", line 138, in <module> from . import _distributor_init File "C:\Users\skybl\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\_distributor_init.py", line 26, in <module> WinDLL(os.path.abspath(filename)) File "C:\Users\skybl\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 373, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。

該当のソースコード

ソースコード(”scrapying.py”)はあまり関係ないかもしれませんが、一応載せます。

Python

1import pandas as pd 2 3url_1 = "https://stooq.com/q/d/?s=7203.jp&c=0&d1=20210401&d2=20210420" 4 5i = 1 6url = url_1 + str(i) 7 8data = pd.read_html(url, header = 0) 9 10 11print(data[0].head(10))

補足情報

Python、Pandaどちらも最新のものを入れています。

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

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

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

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

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

jbpb0

2021/05/20 14:40

> Python、Pandaどちらも最新のものを入れています。 使ってるPythonのバージョンはいくつでしょうか?
yohoho

2021/05/20 20:50

ご質問ありがとうございます。 Pythonは3.8.2です。
jbpb0

2021/05/21 12:49

where python の結果は、どうなりますでしょうか?
yohoho

2021/05/22 20:05

ご質問ありがとうございます。 C:\Users\skybl\AppData\Local\Programs\Python\Python38\python.exe C:\Users\skybl\AppData\Local\Microsoft\WindowsApps\python.exe となりました。Pythonが2つあるのが問題みたいですね…
yohoho

2021/05/22 20:18

片方(C:\Users\skybl\AppData\Local\Microsoft\WindowsApps\python.exe)を削除しましたが解決はしませんでした...
jbpb0

2021/05/22 21:42 編集

where...で複数出てきても、最初に出てくる方が使われます その順番なら、問題ありません エラーメッセージ中に「C:\Users\skybl\AppData\Local\Programs\Python\Python38\lib...」がいくつもありますけど、使われてるpython.exeがあるパスと(「lib」の直前までが)合致してるからです
guest

回答1

0

ベストアンサー

エラーメッセージが意味しているのは、numpyが使っているblasが入っている動的リンクライブラリが壊れているということです。
普通であれば、C:\Users\skybl\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy.libs
の中に、その動的リンクライブラリ(なんたら.dll)があるはずです。

こういうことが起こるのは、利用者が自分で別のPythonにインストールされていたnumpyをコピーするなどの危険な操作を行ったのでなければ、ストレージ(ハードディスクかSSD)の故障です。

まず、HDDエラーチェックと修復のためにWindows 10 CHKDSKを実行する方法を見てストレージのチェックを行いましょう。

問題が無かったかあるいは修復できた場合には、一旦numpyとpandasをアンインストールしてから再インストールしましょう。

投稿2021/05/21 05:37

ppaul

総合スコア24670

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

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

jbpb0

2021/05/21 21:10

ppaulさん > 別のPythonにインストールされていたnumpyをコピーするなどの危険な操作を行った 別のPython用のディレクトリパスを ・環境変数PYTHONPATHを設定してる ・sys.path.appendで追加した 場合でも起きますよね 何らかの原因で、 ・違うPythonバージョン用のdllを読もうとしてる ・Pythonとbitが違うdllを読もうとしてる あたりが発生してるのですかね (前者の場合はエラーメッセージが違うかも)
ppaul

2021/05/22 04:21

jbpb0さん 今回の場合は、別のエラーメッセージになります。 numpyは、BLAS(基本線形代数副処理)を必要とします。これはnumpyをビルドするときに指定するので、ビルド時に_distributor_init.pyが生成されます。 動的リンクライブラリを開く方法はいくつかあって、環境変数で指定された場所を探すのがよく使われますが、_distributor_init.pyはファイルのパス指定で開きます。 具体的にはその_distributor_init.pyからの相対パスで示されるディレクトリでglabを使って取得したファイル名を指定して開いています。 そのため、 「違うPythonバージョン用のdllを読もうとしてる」が起こるのは、違うPythonバージョン用のnumpyを読もうとした場合で、dllは正常に読み込めて、場合によってはその後でエラーが起きます。 globで失敗している場合は「ファイルが見つかりません」になるはずですが、「%1 は有効な Win32 アプリケーションではありません。」はファイルの形式、おそらくはマジックナンバーかそのあとのレコード情報あたりが壊れているので、物理媒体エラーの可能性が高いと判断しました。
yohoho

2021/05/22 21:15 編集

ppaulさん ありがとうございます。 ストレージのチェックはエラーが出ませんでしたので、アンインストールして再度インストールした上で動かすと動かせました。ありがとうございました!
yohoho

2021/05/22 21:15 編集

jbpb0さん ありがとうございます。勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問