プロが教えるわが家の防犯対策術!

https://pypi.org/project/lhafile/
pythonでlhafileを使って.lzhのファイルを解凍したいのですができません

windows10,python 3.8.3です

コマンドプロンプトでpip install lhafileすると以下のエラーがでました.
C:\Users\kaito>pip install lhafile
Collecting lhafile
Using cached lhafile-0.2.2.tar.gz (14 kB)
Building wheels for collected packages: lhafile
Building wheel for lhafile (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\kaito\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\kaito\\AppData\\Local\\Temp\\pip-install-err367l1\\lhafile\\setup.py'"'"'; __file__='"'"'C:\\Users\\kaito\\AppData\\Local\\Temp\\pip-install-err367l1\\lhafile\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\kaito\AppData\Local\Temp\pip-wheel-zwnwy_pu'
cwd: C:\Users\kaito\AppData\Local\Temp\pip-install-err367l1\lhafile\
Complete output (11 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.8
creating build\lib.win-amd64-3.8\lhafile
copying lhafile\lhafile.py -> build\lib.win-amd64-3.8\lhafile
copying lhafile\__init__.py -> build\lib.win-amd64-3.8\lhafile
running build_ext
building 'lzhlib' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-bu …
----------------------------------------
ERROR: Failed building wheel for lhafile
Running setup.py clean for lhafile
Failed to build lhafile
Installing collected packages: lhafile
Running setup.py install for lhafile ... error
ERROR: Command errored out with exit status 1:
command: 'c:\users\kaito\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\kaito\\AppData\\Local\\Temp\\pip-install-err367l1\\lhafile\\setup.py'"'"'; __file__='"'"'C:\\Users\\kaito\\AppData\\Local\\Temp\\pip-install-err367l1\\lhafile\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\kaito\AppData\Local\Temp\pip-record-hwdqp440\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\kaito\anaconda3\Include\lhafile'
cwd: C:\Users\kaito\AppData\Local\Temp\pip-install-err367l1\lhafile\
Complete output (11 lines):
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.8
creating build\lib.win-amd64-3.8\lhafile
copying lhafile\lhafile.py -> build\lib.win-amd64-3.8\lhafile
copying lhafile\__init__.py -> build\lib.win-amd64-3.8\lhafile
running build_ext
building 'lzhlib' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-bu …
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\kaito\anaconda3\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\kaito\\AppData\\Local\\Temp\\pip-install-err367l1\\lhafile\\setup.py'"'"'; __file__='"'"'C:\\Users\\kaito\\AppData\\Local\\Temp\\pip-install-err367l1\\lhafile\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\kaito\AppData\Local\Temp\pip-record-hwdqp440\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\kaito\anaconda3\Include\lhafile' Check the logs for full command output.

どのようにすれば,インストールできますか?
pip 以外の方法もあるのでしょうが,windowsはコンパイル環境構築?が必要と書いてありさっぱりわかりません.

どのようにすれば,よろしいでしょうか.
ご回答よろしくお願いいたします.

質問者からの補足コメント

  • ご回答ありがとうございます.
    https://support.microsoft.com/ja-jp/help/2977003 …
    このサイトを確認しても,わからんってなったんですが,調べていったほうがいいですか?

    pipとかでインストールする方法はありませんかね??

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/11/04 16:45
  • うーん・・・

    https://support.microsoft.com/ja-jp/help/2977003 …

    のページのx64: vc_redist.x64.exe
    をインストールしましたが,あってますか?
    エラーでるので,あってないんでしょうけど.

    この後なにすればいいんでしょうか?


    すみません,ご回答よろしくお願いします

      補足日時:2020/11/04 21:27
  • うーん・・・

    いつもお世話になっております.
    そうですね,今3か月目ぐらいです.
    私の心の中まで見透かされててびっくりです(笑)

    いつもわかりやすい説明ありがとうございます.
    なるほど,そういうpositiveな循環があるんですね.
    python 以外の知識も頭に入れておく必要がありそうですね...

    Microsoft C++ Build Toolsをダウンロード/インストールしました.
    起動して,[Visual Studio Enterprise 2019,Visual Studio Professional 2019,Visual Studio Community 2019]のうち何をインストールすればよろしいのでしょうか?(写真が添付できず,文字の説明になってしまい,申し訳ありません)


    インストール済みには,まだ何もインストールしていませんと表示されています.

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/11/04 22:44
  • うれしい

    ワークロードで[Python 開発,C++によるモバイル開発,データサイエンスと分析のアプリケーション,Visuak Studio 拡張機能の開発]を選んでインストールしました.パットみ必要そうなのを選びましたがあってますかね?

    次に
    コマンドプロンプトでpip install lhafileと打ち込みましたが,最初と同じエラーがでてきました.
    インストールした後の環境設定的なことが必要なのでしょうか?

    こんなにも,丁寧な解説,誠にありがとうございます.
    これらの内容は,少しずつ理解できるように頑張ります!


    簡単といわれているPythonでこんなにも苦労してのに,C言語は夢のまた夢ですかね.(笑)

    コードが実行したときの喜びは,今までで一番の達成感がありますが,エンジニアとか向いてないです(笑)

      補足日時:2020/11/05 01:13

A 回答 (6件)

> これをインストールすると,lhafileのインストールに成功しました!



ああ、それは良かったです。

> 本当に2か月前は,インストールに手こずりました.
> 意味わからなさ過ぎて...
> 今では,少しマシになってきましたが,環境構築は本当に難しいと感じています.

いやまぁ、誰でも最初はそうですよ。
僕もそうでしたし。

ちなみに、僕が初めて買ったパソコンはAppleのMacintoshで、後にWindowsに移って環境構築する際、やっぱりてこずったのは事実です。
いや、ホント色々と分かんなかった。
まあ、(当時の)Macもそうですし、Windowsもそうですが、「ソフトウェアを使う分」には十全な環境ですが、「それ以上踏み込もう」とすれば、途端に厄介になります。
特に、最初にMacなんか触ってた為、端末(DOS窓)の知識なんて0でしたね。今のMac OS XはUNIXなんで、端末が存在しますが、昔のMacは全部マウスを使うんで、「コマンドを打つ」なんて事は全然なくって、「DOS窓ってなんてメンド臭いんだ」とか思いましたねぇ。この辺、昔のDOSマシン、特にNEC PC-9801使っていた層に比べると断然と知識が足りないトコからスタートしましたねぇ。

と言うわけで、まあ、徐々に覚えていけますよ、とだけは言えます。
僕も全然分からなかったし、人に助けてもらいながら覚えてきたんで。
    • good
    • 0
この回答へのお礼

そうですよね
結局自分でプログラム組んで覚えていくしかないですよね
頑張ります!!
これからもお世話になると思いますが,よろしくお願いいたします.

お礼日時:2020/11/06 15:50

> ワークロードで[Python 開発,C++によるモバイル開発,データサイエンスと分析のアプリケーション,Visuak Studio 拡張機能の開発]を選んでインストールしました.



ここ

手順 4 - ワークロードを選択する:
https://docs.microsoft.com/ja-jp/visualstudio/in …

を見る限り、

Desktop development with C++

が必要だと思います・・・まぁ、こうやって小分けされると困りますよね、実際は。
いずれにせよ、それは入っていますか?

もし、それが入っていて、だとすると・・・・・・。

> コマンドプロンプトでpip install lhafileと打ち込みましたが,最初と同じエラーがでてきました.
> インストールした後の環境設定的なことが必要なのでしょうか?

多分パスが通ってないのでしょう。・・・やべぇ、「パス」も専門用語か(爆

パス: Path。通り道の事。基本的にはあるソフトウェアがどのフォルダに入ってるのか、その道筋を示すモノを「パス」と呼ぶ。良くあるWindowsの

C:\\hoge\fuga\foo.exe

と言う「フォルダ階層の記述」をパスと言うのだが。
特にプログラミング用語で使う場合、端末(DOS窓)で、そのプログラムを直接呼び出そうとして失敗した場合、「パスが通ってない」と表現する。
例えば上の例で、端末(DOS窓で)

foo.exe

と打って実行が成功した場合、「パスが通ってる」、失敗した場合「パスが通ってない」と表現する。
パスが通ってない場合でも、端末(DOS窓)で、

C:\\hoge\fuga\foo.exe

とパスを全部打てば実行可能なのだが、毎回毎回こんなに長ったらしいモノを打っていられない。
従って、「どのフォルダにいようがコマンド(この場合はfoo.exe)を実行して成功するようにする」のを「パスを通す」と表現する。

注: 「どのフォルダにいようと」と言うのは、端末を開いた場所がピクチャフォルダ内にいようがドキュメントフォルダ内にいようが、と言う意味。
Windowsのデフォルトでは恐らく、DOS窓を開けば

C:\\Users\ユーザー名

にいる、と思われるが、cdコマンドによって好きな場所(フォルダ)に移動する事が可能である。言い方を変えると、PythonでpipでインストールされたC/C++のソースコードの場所から単純にC++コンパイラが呼び出されなければ、「パスが通ってない」と言う事になり、呼び出せない以上コンパイルは失敗する事となる。

「パスを通す」為には「環境変数」を言うモノを設定する。ここに目的のソフトがあるフォルダを登録すれば、Windows内のどのフォルダにいようと、ソフトウェアの名前を打てばそのソフトが起動する事になる。

Windows10で実行ファイルへのパスを通す手順:
https://qiita.com/shuhey/items/7ee0d25f14a997c9e …

なお、「パスなんてメンドくせぇ設計をしやがって」と言う感想は正しい。ただし、どこからでも実行可能なソフトウェアばかり、と言うのはセキュリティ上危険だ、と言うのも事実で、そういうわけで、余計なソフトウェアは変なフォルダから実行出来ないように「わざと」そういう風に設計してたりする。
    • good
    • 0
この回答へのお礼

Desktop development with C++が入っていませんでした!
これをインストールすると,lhafileのインストールに成功しました!
ありがとうございます!

本当に2か月前は,インストールに手こずりました.
意味わからなさ過ぎて...
今では,少しマシになってきましたが,環境構築は本当に難しいと感じています.

素人に向けた説明をさせて申し訳ありません,大変感謝しております!

また,質問させていただくと思います!
その際は,よろしくお願いいたします.

お礼日時:2020/11/05 10:13

あ、あと、用語集で1つ忘れてました。



仕様: Specification。スペック、等とも言われる。ソフトウェアの入力に対する出力の定義等を文書化したもの。逆に言うと仕様通りにプログラムを書いていけばプログラムは出来上がる。出来上がった方を「実装」等と呼ぶ。
プログラミング言語もソフトウェアの1つなので、仕様は非常に重要である。が、プログラミング言語は二種類あって、「公式な」仕様を持っているものと、「公式な」仕様を持っていないものの2つがある。「公式」にも段階があって、一国内で通用するもの、そして複数の国をまたいで通用するもの、の二種類がある。前者は日本ではJIS、後者は国際的にはISOやECMA等がある。そしてPythonやJavaは公式仕様は存在しない。後者は日本ではC/C++、Pascal、Ruby、JavaScript(正式名称はECMAScript)等があり、後者の場合、例えば貴方が仕様書通りに実装すれば、RubyやECMAScriptを名乗る事が可能である(これが権利関係に煩わされずにC/C++に複数のベンダー(実装提供者/社)が存在する理由)。
また、先にも書いた通り、通常、言語仕様で「コンパイラの存在」を定義しているプログラミング言語は存在しない。故に、実用的な問題を除けば、理論的にはC/C++のインタプリタは許容される。仕様に明記されていない事に関しては「実装者に委ねる」と言うのが暗黙の了解。
なお、個人的には「Cの教科書にロクなモノが存在しない」と思ってて、「プログラミング初心者にCを奨めない理由」もこの辺。現行仕様に合わない入門書ばっかり出版されている。
我々が普段見かけるCの入門書、ってのはベースを「国際規格化される前のC」に依然委ねてる、と言う最悪の状況である。ぶっちゃけ、40年前くらいの「常識」で書かれた本ばかりで、ロクなモノが存在していない。
C言語の国際仕様は2011年に制定された通称C11であり、JISでは、翻訳で遅れてるのか、少なくとも1999年に制定された通称C99になっている。ぶっちゃけ、これらに準じてないのに「C言語入門」もクソもあったもんじゃねぇだろ、とか思っている。んで、教えてgooに投稿されてくる丸投げ問題も、ぶっちゃけ、40年くらい前のC言語の問題ばっかである。学校の方もいい加減にしろ、とか思ってる。
と言うわけで、万が一C言語を勉強したい、と言うのなら、まずはC言語以外のプログラミング言語を使いこなせる事。その上で、C言語入門なんざ買わずに、

S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル:
https://www.amazon.co.jp/S%E3%83%BBP%E3%83%BB%E3 …

を買って勉強した方がマシだと思う。
なお、日本の公式言語仕様類のチェックはJISのサイトで可能である。

日本産業標準調査会:
https://www.jisc.go.jp/app/jis/general/GnrJISSea …
    • good
    • 0

> 起動して,[Visual Studio Enterprise 2019,Visual Studio Professional 2019,Visual Studio Community 2019]のうち何をインストールすればよろしいのでしょうか?



Communityでいいと思いますよ・・・ってかその他の2つは有償だと思います・・・その辺がMicrosoft製品だとメンド臭いんですよね。
(Enterpriseは企業向け、Professionalはプロの個人プログラマ向け、になってると思います・・・UNIX系だと当然こういう区分けはないんですが、まあ、それで金稼いでるんだからしょーがないです・笑)

> python 以外の知識も頭に入れておく必要がありそうですね...

うん、まぁ、ぼちぼち・・・ですか。
多分この辺のメンド臭さがあるんで、Anaconda辺りはコンパイル済のバイナリを配布してんじゃないでしょうかね。

ええと、まぁ、知識と言うよか、用語はある程度押さえておいた方が良いでしょう。
今回も色々用語出して、あまり明るくないかもしれませんが、プログラマと会話する以上、ある程度出てくる用語なんで、この辺覚えなければならない、ってのは諦めてください(笑)。

バイナリ: 実行形式。コンパイル済の単独のプログラムを指したりするが、文脈によって意味が変わる可能性がある。例えばJavaのような仮想マシン(原理的にはインタプリタ)上で走る仮想マシン用のコンパイル済コードも特にバイナリ、と読んだりする。Pythonだとやっぱりコンパイル済コードがあって、*.pycと言う拡張子のファイルをバイナリ、と呼んだりする。

コンパイラ: ソースファイルを一括で、実行形式に落とし込むソフトウェア。プログラミング言語によってはコンパイラを使う前提で設計されているモノがある(例えばC/C++が有名だが、一方で、仕様で要求されているわけではない)。昔の初心者向けプログラミング用教科書だと、「コンパイラ言語」「インタプリタ言語」と言語を二種類に分類してたが、厳密にはこれは意味がない。例えばJavaは通常コンパイラ言語と言われてるが、先にも書いた通り、仮想マシン向けにコンパイルしているだけで、仮想マシンは原理的にはインタプリタである。また、Pythonも「インタプリタ言語」と思われてるが、場合によってはソースコードをPython本体に入ってる仮想マシン(Pythonにもあるんです!)向けにコンパイルする。従って、現実的には「どっちの言語?」って問うのは無意味。

仮想マシン: Virtual Machineの日本語訳。コンピュータ(実機)上でエミュレートしてるコンピュータ(仮想)、と考えれば良い。つまり、JavaはJava用に設計されたコンピュータ上で動き、PythonはPython向けに設計されたコンピュータ上で動いてる、と言うのが概念的な説明。正体は単なるインタプリタである。

ビルド: 基本的にはコンパイル、の同意語。ただ、慣用ではコンパイルは単独の小さなソースコードに対して行うモノに対し、ビルドは複数のソースコードをもってなる「(比較的)大きな」プログラムに対して使う。
例:「Microsoft Excelのクローンソフトをビルドしようと思ったんだけど、8時間もかかるってんで諦めちゃった」
そして時間的にはビルドはコンパイルより時間がかかる。ちなみに、商用ソフトや大きなソフトウェアを書く為のコンパイラその他の(コンパイラが要求する)ツール群をまとめて「ビルドツール」と呼ぶ。

ボトルネック: プログラム全体が遅くなる原因の部分。プログラムを書いてるうち、パフォーマンスが悪くなる原因はどっかにある、けど一般に「ここだ」って分かる部分には存在しないと言われている。そういう部分を探すには「プロファイラ」と呼ばれるソフトで部署を探さないとならない。なお、Pythonにはプロファイラが含まれているので、その辺も安心である。
ちなみに、だからこそ、最近のソフトウェア工学では「何が何でも全部C/C++で書かないと」と言うのは否定されてきている。遅いプログラミング言語で書いても全体が嫌になるほど遅くなる、って事は無い、ってのが最近の常識。ボトルネックだけ高速なプログラミング言語で書き換えれば良い、ってのが最近のテクニックと成りつつある。
なお、ここも参照、の事。 -> https://ja.wikipedia.org/wiki/%E6%9C%80%E9%81%A9 …

まあ、いずれにせよ、pipで起きるインストール絡みの問題は、Microsoft Visual C++を導入すれば結構な確率で解決するでしょう。
例えば有名なNumpyなんかも、実態はほぼC/C++言語で書かれてるんで、Visual C++をインストールしておけば安心ですね。
    • good
    • 0

> ページのx64: vc_redist.x64.exe


>をインストールしましたが,あってますか?
>エラーでるので,あってないんでしょうけど.

いや、合ってません。
エラーに表示されている

https://visualstudio.microsoft.com/ja/visual-cpp …

のページに行って、Microsoft C++ Build Toolsをダウンロード/インストールしてください。

> pipとかでインストールする方法はありませんかね??

うーん、何故問題が起きたのか、ってのはpip自体がどーの、ではなくって・・・。
あれ、プログラミング初心者でしたっけ?
じゃあ、ちょっと説明しておきます。

まず、Pythonと言う言語なんですが、実はそんなに速い言語じゃありません。お世辞にも「高速に色々と処理出来る」プログラミング言語ではないんですよ。
じゃあ、何故人気があるのか?もちろん外部ライブラリがたくさんあるから、なんですが、開発者側の観点から言うと、「C/C++言語で作ったプログラムとやり取りがしやすいから」なんです。これが他の言語だとサポートされてないケースが多いんです。
そう、PythonはC/C++で作ったプログラムとのインターフェースが優れてる。
つまり、Python自体は決して速くないプログラミング言語なんですが、クリティカルな場面、ないしは高速に演算が必要な場合、内容をC/C++で書いたプログラムに手渡し、その結果を手元に戻せる、って言う器用な事をしてるんですね。これが、最近流行りの「人工知能」「機械学習」でPythonが流行ってる理由でもあるんです。
逆に言うと、C/C++プログラマでも「クッソめんどくさい」C/C++で全部を書かなくて良い。「殆どPythonでプログラムを組んで」ボトルネック(プログラミング用語で、「全体のパフォーマンスの足かせになってる一部」の事)だけC/C++で書き直せば良い。要するに、これが世界にたくさんいるC/C++プログラマにもウケてて、良好な関係が築けた為、余計Pythonのライブラリが増える、って好循環の元になってるわけです。

さて、それが分かれば、「Pythonの外部ライブラリにはC/C++言語で書かれたプログラムが含まれてる場合がある」ってのはお分かりになるでしょう。
ただし、全部が全部、バイナリ(実行形式)で配られるわけではない。特にpipを使うと、通常はソースコードでの配布になるわけです。Pythonで書かれたソースコードはインタプリタであるPythonで実行される、ってのは問題にならない。問題になるのはC/C++で書かれたプログラムのソースコードが配布される場合、です。こいつらはコンパイルしないと使えない、のです。
これで大体今回の問題の根っこが分かったと思います。

「pipでC/C++を含むソースコードを入手したのはいいけど、C/C++のコンパイラがありません!C/C++のコンパイラを入手してください!」

これはぶっちゃけ、UNIX/Linuxでは見えないタイプのエラーなんです。UNIX/Linuxだと(あるいはMac OS Xでも)通常、C/C++コンパイラは本体に含まれてますからね。
ところが、WindowsのPython自体もMicrosoft のVisual C++でコンパイルされています。そして、ライブラリも通常Microsoft Visual C++でコンパイルされるように書かれてるんですね。っつーか、Windowsでマトモに使えるコンパイラってVisual C++シリーズくらいしか通常ありません。
そんなわけで、エラーに「Microsoftが・・・」って出てきて面食らったんでしょうが(「あれ、俺Python使ってるし、Microsoftカンケーねぇ筈だけど?」みたいな)、以上の事が背景として、エラーメッセージが出てるわけです。
この回答への補足あり
    • good
    • 0

> windowsはコンパイル環境構築?が必要と書いてありさっぱりわかりません.



いやまぁ、書いてるままじゃないですか?
Microsoft Visual C++(14.0以上)をインストールすれば大丈夫だ、って事だと思いますけど。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!