使用 python filename.py 执行时没有名为 psutil 的模块,但与 shebang & chmod 完美配合

No module named psutil when executed using python filename.py but works perfectly with shebang & chmod

考虑 python

中的这段代码
#!/usr/bin/env python3
import shutil
import psutil

def check_disk_usage(disk):
    a=shutil.disk_usage(disk)
    free=a.free/a.total*100
    return free

print(check_disk_usage("/"))

当我在终端中使用“python health.py”执行此操作时。它给出了错误

shambhav@shambhav-Lenovo-Legion-Y540-15IRH-PG0:~/Desktop/coursera$ code health.py
shambhav@shambhav-Lenovo-Legion-Y540-15IRH-PG0:~/Desktop/coursera$ python health.py
Traceback (most recent call last):
  File "health.py", line 3, in <module>
  import psutil
ImportError: No module named psutil

但是当我这样执行时,它运行得很好。为什么会这样??

shambhav@shambhav-Lenovo-Legion-Y540-15IRH-PG0:~/Desktop/coursera$ code health.py
shambhav@shambhav-Lenovo-Legion-Y540-15IRH-PG0:~/Desktop/coursera$ chmod +x health.py
shambhav@shambhav-Lenovo-Legion-Y540-15IRH-PG0:~/Desktop/coursera$ ./health.py
87.24079278480475

有人可以帮我解决这个问题吗?

在您的 shebang 中,您明确使用了 python3,但当您从终端启动它时却没有。因此,尝试:

python3 health.py

为了理解,请尝试在您的终端中输入 which pythonpython --version。我打赌它不是指向 python3,而是 python2.