1

嘿,我是 Stack Over Flow 和 Python 的新手,但想学习并希望有人可以在这里为我提供帮助。我正在尝试在 python 中开发一个币安交易机器人。请在下面查看我的脚本:


from binance.client import Client

class Trader:
    def __init__(self, file):
        self.connect(file)

    """ Creates Binance client """
    def connect(self,file):
        lines = [line.rstrip('\n') for line in open(file)]
        key = lines[0]
        secret = lines[1]
        self.client = Client(key, secret)

    """ Gets all account balances """
    def getBalances(self):
        prices = self.client.get_withdraw_history()
        return prices

filename = 'API credentials.txt'
trader = Trader(filename)
balances = trader.getBalances()
print(balances)

该脚本给了我一个找不到模块的错误,请参阅下面的完整详细信息:

PyDev console: starting.
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
runfile('C:/Users/ryanf/PycharmProjects/trading bot/trader.py', wdir='C:/Users/ryanf/PycharmProjects/trading bot')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm Edu 2020.1.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm Edu 2020.1.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/ryanf/PycharmProjects/trading bot/trader.py", line 1, in <module>
    from binance.client import Client
  File "C:\Program Files\JetBrains\PyCharm Edu 2020.1.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'binance.client'; 'binance' is not a package

希望有人可以在这里提供一些建议,将不胜感激。

4

5 回答 5

4

确保在同一个文件夹中没有任何名为“binance”的文件——这就是发生在我身上的事情。

于 2021-05-09T07:17:04.310 回答
3

推荐文档:https ://docs.python.org/3/reference/import.html这些文档很长,但这里是“亮点”:

  • 请参阅有关路径条目查找器的文档。您可以import sys; print(sys.path)在任何导入语句之前检查PYTHONPATH运行脚本的环境变量。如果您知道您的包或模块所在的位置,请确保该位置已从上述声明中列出。
  • 请参阅有关安装库/模块的文档——假设您已经安装了 pip,您是否pip install python-binance在任何时候运行过,如果您从命令行运行pip list,是否列出了“binance”?
  • 如果binance是当前目录中的子目录,则您可能缺少__init__.py文件 - 请参阅有关包的文档
  • 当您更改PYTHONPATH或进行其他更改时,请注意歧义;避免创建模块可能来自的多个源,并以一种方式命名您的模块/包,以避免隐藏现有模块。请参阅有关搜索路径优先级的文档
于 2020-05-22T21:22:33.327 回答
0

通过调用您的文件 binance.py,然后尝试从 binance.client 导入 python 正在查看您的 binance.py 文件。

如果您重命名本地文件,则不会有问题。

于 2021-06-05T18:55:10.580 回答
0

我已经在谷歌上尝试了很多东西但没有任何用处,然后我厌倦了 pip install python-binance==0.7.5 而不是 pip install python-binance==0.7.9,我成功地从 binance 导入“ .client 导入客户端。

除此之外,我还将我的两个 binance.py 文件重命名为 binance.client.py,它对我有用。

你可以在你的 python3 站点包文件夹中找到你的 binance.py 文件。只要去那里搜索binance.py,你就会找到它。

于 2021-06-13T11:57:12.007 回答
0

我遇到了同样的问题,发现是因为我从两个不同的来源(python.org 和 Microsoft 商店)安装了两次 python。通过更改 VS Code 中的 python 源,问题得到解决。

于 2021-09-30T08:09:40.217 回答