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

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

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

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

Q&A

解決済

2回答

4207閲覧

pycallgraph(モジュール)が実行できない。

lapin_

総合スコア1

Python

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

0グッド

0クリップ

投稿2020/07/03 10:19

編集2020/07/03 10:30

前提・実現したいこと

pycallgraphモジュールを実行したいのですが、できません。
思い当たる理由があれば教えてください。

とりあえずなんでもいいので
pycallgraph -hでヘルプが実行できればいいなと思っています。

環境

windows10
powershell
python 3.8.3

発生している問題・エラーメッセージ

PS C:\Users******> pycallgraph -h プログラム 'pycallgraph' の実行に失敗しました: この操作に対して指定されたファイルには、ア プリケーションが関連付けられていません。発生場所 行:1 文字:1 + pycallgraph -h + ~~~~~~~~~~~~~~。 発生場所 行:1 文字:1 + pycallgraph -h + ~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException + FullyQualifiedErrorId : NativeCommandFailed

試したこと・確認済みの事項

・sys.path

'C:\Users\***\AppData\Local\Programs\Python\Python38\python38.zip', 'C:\Users\***\AppData\Local\Programs\Python\Python38\DLLs', 'C:\Users\***\AppData\Local\Programs\Python\Python38\lib', 'C:\Users\***\AppData\Local\Programs\Python\Python38', 'C:\Users\***\AppData\Local\Programs\Python\Python38\lib\site-packages']

・pycallgraphのインストール場所(sys.pathで指定されている場所)

PS C:\Users***.atom\files\deepl> pip install pycallgraph Requirement already satisfied: pycallgraph in c:\users***\appdata\local\programs\python\p ython38\lib\site-packages (1.0.1)

・一度uninstallして、実行しようとした際のエラー(当然実行できないが、内容が異なる)

PS C:\Users******> pycallgraph -h pycallgraph : 用語 'pycallgraph' は、コマンドレット、関数、スクリプト ファイル、または操作 可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが 含まれている場合はそのパスが正しいことを確認してから、再試行してください。 発生場所 行:1 文字:1 + pycallgraph -h + ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (pycallgraph:String) [], CommandNotFoundExc eption + FullyQualifiedErrorId : CommandNotFoundException

途方に暮れています。どうか、よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

これですか?

setup.py」を見るとscriptsに指定されていますから、WindowsであればPythonのインストールディレクトリの下の「Scripts」ディレクトリにインストールされていると思います。

ただし、中身を見る限り、中身はシェバンを持ったPythonスクリプトであり、UNIX系OSで動かす事を前提としています。
Windowsであれば、「python C:\Users***\AppData\Local\Programs\Python\Python38\Scripts\pycallgraph -h」というように動かすしかないと思います。

投稿2020/07/03 12:13

katsuko

総合スコア3538

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

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

lapin_

2020/07/03 13:43

この方法で実行できました。 やはりこうやってコードを見ていくことが必要なんだと学びました。 自分にとってはモジュールというブラックボックスと見なしていたので、勉強になりました。ありがとうございます。 実行したいプロジェクトのディレクトリにこのスクリプトがあれば良いようなので、下記のURLのとおりにスクリプトをコピーして使っていくことにします。 https://qiita.com/tatuno/items/82d1df00f0ca12067d7c 最後にひとつ質問させてください。 unix系ではpythonスクリプトの拡張子なしの形式は一般的なのでしょうか?「.py」との違いについてわかれば教えていただけますか?
katsuko

2020/07/03 14:13

んー、ちょっと一言では説明しづらいのですが…。 まず、UNIX系OSはWindowsほど拡張子がシステムに強く依存していません。 あくまでファイルの種類がわかるようにするための目印、程度の位置づけです。 一般的かどうかと言えば、基本的にUNIX系のOSでもPythonのスクリプトには拡張子に「.py」を付けるのが一般的です。 ただ、(Pythonに限らず大抵のスクリプト言語では)回答に書いたシェバン(「シバン」)を付け、実行属性を付け、PATHの通ったディレクトリに置くと、今回のようなコマンドとして使用する事ができ、そのような場合には拡張子は付けません。(一般的に、です。先程も言ったとおりシステムに依存しているわけではないので、付けてはいけないというわけではありません)
lapin_

2020/07/03 14:18

よくわかりました。 Linuxの勉強もし始めたところなので、非常に参考になりました。 ありがとうございました。
guest

0

windowsで設定しているパスがどうなっているかは知りませんが、しっかりとパスが通っていないと思います。linux環境で実行できたのでパス問題が大きいと思います。

linuxでは以下のように動きました。

shell

1$ pycallgraph -h 2usage: pycallgraph [options] OUTPUT_TYPE [output_options] -- SCRIPT.py [ARG ...] 3 4Python Call Graph profiles a Python script and generates a call graph 5visualization. 6 7positional arguments: 8 {graphviz,gephi} OUTPUT_TYPE 9 graphviz Graphviz generation 10 gephi Gephi GDF generation 11 12optional arguments: 13 -h, --help show this help message and exit 14 -v, --verbose Display informative messages while running 15 -d, --debug Display debugging messages while running 16 -t, --threaded Process traces asyncronously (Experimental) 17 -ng, --no-groups Do not group functions by module 18 -s, --stdlib Include standard library functions in the trace 19 -m, --memory (Experimental) Track memory usage 20 21filtering: 22 -i INCLUDE, --include INCLUDE 23 Wildcard pattern of modules to include in the output. 24 You can have multiple include arguments. 25 -e EXCLUDE, --exclude EXCLUDE 26 Wildcard pattern of modules to exclude in the output. 27 You can have multiple exclude arguments. 28 --include-pycallgraph 29 Do not automatically filter out pycallgraph 30 --max-depth MAX_DEPTH 31 Maximum stack depth to trace 32

投稿2020/07/03 10:39

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

lapin_

2020/07/03 10:46

回答ありがとうございます。 ユーザー環境変数のPATHとして以下のように設定されており、問題ないと思うのですが、何か全く別の問題があるのでしょうか。 PATH C:\Users***\AppData\Local\Programs\Python\Python38\Lib\site-packages\pycallgraph
退会済みユーザー

退会済みユーザー

2020/07/03 10:48 編集

まず、エクスプローラーで C:\Users***\AppData\Local\Programs\Python\Python38\ のパスにアクセスして、検索から pycallgraph.exe を検索してみて、もしそれがなかったら、 pycallgraph で調べて実行できそうなファイルがあるか確認してみてそのパスが通っているか確認してみてはどうでしょうか。
lapin_

2020/07/03 11:19

exeはどこにもなく、pycallgraph.pyしかなかったので 試しにexeに変換して、そのディレクトリにパスを設定したんですが、それでも同じエラーが出てしまいました。 .py --> .exe https://techacademy.jp/magazine/18963
lapin_

2020/07/03 11:28

また、以下の方法でも、モジュールがインストールされていることが確認できているのですが、これはパスが通っていることの証明にはならないんでしょうか?? PS C:\Windows\system32> pip freeze ..... callgraph==1.0.0 .....
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問