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

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

ただいまの
回答率

88.92%

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 176

lapin_

score 1

前提・実現したいこと

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

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 22:43

    この方法で実行できました。
    やはりこうやってコードを見ていくことが必要なんだと学びました。
    自分にとってはモジュールというブラックボックスと見なしていたので、勉強になりました。ありがとうございます。

    実行したいプロジェクトのディレクトリにこのスクリプトがあれば良いようなので、下記のURLのとおりにスクリプトをコピーして使っていくことにします。
    https://qiita.com/tatuno/items/82d1df00f0ca12067d7c

    最後にひとつ質問させてください。
    unix系ではpythonスクリプトの拡張子なしの形式は一般的なのでしょうか?「.py」との違いについてわかれば教えていただけますか?

    キャンセル

  • 2020/07/03 23:13

    んー、ちょっと一言では説明しづらいのですが…。

    まず、UNIX系OSはWindowsほど拡張子がシステムに強く依存していません。
    あくまでファイルの種類がわかるようにするための目印、程度の位置づけです。

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

    キャンセル

  • 2020/07/03 23:18

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

    キャンセル

0

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

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

$ pycallgraph -h
usage: pycallgraph [options] OUTPUT_TYPE [output_options] -- SCRIPT.py [ARG ...]

Python Call Graph profiles a Python script and generates a call graph
visualization.

positional arguments:
  {graphviz,gephi}      OUTPUT_TYPE
    graphviz            Graphviz generation
    gephi               Gephi GDF generation

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         Display informative messages while running
  -d, --debug           Display debugging messages while running
  -t, --threaded        Process traces asyncronously (Experimental)
  -ng, --no-groups      Do not group functions by module
  -s, --stdlib          Include standard library functions in the trace
  -m, --memory          (Experimental) Track memory usage

filtering:
  -i INCLUDE, --include INCLUDE
                        Wildcard pattern of modules to include in the output.
                        You can have multiple include arguments.
  -e EXCLUDE, --exclude EXCLUDE
                        Wildcard pattern of modules to exclude in the output.
                        You can have multiple exclude arguments.
  --include-pycallgraph
                        Do not automatically filter out pycallgraph
  --max-depth MAX_DEPTH
                        Maximum stack depth to trace

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/03 19:46

    回答ありがとうございます。
    ユーザー環境変数のPATHとして以下のように設定されており、問題ないと思うのですが、何か全く別の問題があるのでしょうか。

    PATH
    C:\Users\***\AppData\Local\Programs\Python\Python38\Lib\site-packages\pycallgraph

    キャンセル

  • 2020/07/03 19:48 編集

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

    キャンセル

  • 2020/07/03 20:19

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

    .py --> .exe
    https://techacademy.jp/magazine/18963

    キャンセル

  • 2020/07/03 20:28

    また、以下の方法でも、モジュールがインストールされていることが確認できているのですが、これはパスが通っていることの証明にはならないんでしょうか??

    PS C:\Windows\system32> pip freeze
    .....
    callgraph==1.0.0
    .....

    キャンセル

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

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る