如果文件的扩展名为 .py,为什么此脚本不起作用?

Why does this script not work if the file has a .py extension?

我正在按照 Coinbase API 指南中的说明进行操作 Coinbase Guide 代码的第一行只是加载 Coinbase 库:

from coinbase.wallet.client import Client

我正在使用 IDLE 作为 IDE。如果我处理没有扩展名的文件(例如简称为 'coinbase'),那么指南中的示例就可以正常工作。

如果我处理具有标准 Python 扩展名(例如 'coinbase.py')的文件,它不会加载 Coinbase 库并出错!错误信息是:

ImportError: No module named wallet.client

我认为这不一定与 Coinbase 相关,也许我做的事情根本上是错误的。回答表示赞赏。

请记住,所有 python 文件都被 python 视为模块。 因此,当您编写名为 coinbase.py 的脚本时,python 会将其视为一个模块并让您使用 import coinbase 导入它。这样做是在隐藏您打算导入的 real coinbase 模块,因此会出现错误。

要解决此问题,只需避免使用现有模块名称调用您的文件(当然,除非您打算隐藏它们)。