0

問題:

「import paramiko」という行が含まれる python ファイル ( forge.py )と、paramiko モジュールの関数を使用する関数process()があります。import paramiko」行は、 forge.pyファイル内の別のサブルーチンによって呼び出された場合は正常に機能しますが、別のファイル ( main.py ) から呼び出された場合はエラーをスローします。

問題を再現する手順は何ですか?

1 Raspbian OS、python3.8 インタープリターで PyCharm を実行しています。

期待される結果は何ですか?

関数をテストするforge.pyファイルでmain()関数を実行すると、 paramikoが正常に読み込まれ、 paramikoへのprocess()関数呼び出し(以下を参照) が期待どおりに機能します。

代わりに何が起こりますか?

import ... from ...参照を使用して含まれているforge.py のprocess ()も呼び出す別のファイル ( main.py ) があります。しかし、main.pyのコードが呼び出しを行うと、呼び出しは失敗し、次のエラーが報告されます。

ModuleNotFoundError:No module named 'paramiko'.

そして、このトレースバック:

in process()
Traceback (most recent call last):
  File "/home/pi/PycharmProjects/sonascan-pi/src/client/main.py", line 313, in <module>
    main()
  File "/home/pi/PycharmProjects/sonascan-pi/src/client/main.py", line 277, in main
    do_a_loop()
  File "/home/pi/PycharmProjects/sonascan-pi/src/client/main.py", line 219, in do_a_loop
    result = process()
  File "/home/pi/PycharmProjects/sonascan-pi/src/client/forge.py", line 225, in process
    import paramiko
ModuleNotFoundError: No module named 'paramiko'

main.pyからの関連コードの抜粋を次に示します。

# in file main.py
from forge import process

def do_a_loop():
    result = process()
    return

def main():
   do_a_loop()
   return

if __name__ == '__main__':
    main()

forge.py の関連部分は次のとおりです。

#  in forge.py
def process()
    print("in process")
   ...
    import paramiko

    private_key = paramiko.RSAKey.from_private_key_file(pem_key)
    ssh_client = paramiko.SSHClient()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   ....

def main()
   result = process()

if __name__ == '__main__':
    main()
4

0 に答える 0