0

问题:

我有一个 python 文件(forge.py),其中有一行“import paramiko”,以及一个使用 paramiko 模块中的函数的函数process()。当被forge.py文件中的另一个子例程调用时, “import paramiko”行可以正常工作,但在从不同文件 ( main.py )调用时会引发错误。

哪些步骤将重现该问题?

1 在 Raspbian 操作系统上运行 PyCharm,python3.8 解释器。

预期的结果是什么?

当我在测试函数的forge.py文件中运行main()函数时,它会很好地加载paramiko,并且对 paramiko 的process ()函数调用(如下所示)按预期工作。

相反会发生什么?

我有另一个文件(main.py ),它也在forge.py中调用process(),它是使用import ... from ...引用包含的。但是当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