Python中如何正确导入ccxt模块,解决目录结构下的import问题

我写的是 from hunter.trade import ccxt 但是运行时提示我 no moudle named hunter


Python中如何正确导入ccxt模块,解决目录结构下的import问题
3 回复

这个问题我遇到过,导入ccxt时确实容易因为目录结构出问题。

首先确保你已经安装了ccxt:

pip install ccxt

如果你的项目结构是这样的:

project/
├── main.py
└── utils/
    └── exchange.py  # 这里要导入ccxt

exchange.py中直接导入ccxt:

import ccxt

然后在main.py中导入你的模块:

from utils.exchange import some_function

如果还是报错,可能是Python路径问题。有几种解决方法:

  1. 相对导入(如果utils是个包):
# 在exchange.py中
from .. import ccxt  # 不推荐,容易混乱
  1. 绝对导入(推荐):
# 在exchange.py中
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import ccxt
  1. 更好的做法 - 把项目做成可安装的包: 创建setup.py
from setuptools import setup, find_packages

setup(
    name="my_project",
    packages=find_packages(),
)

然后安装你的项目:

pip install -e .

这样在任何地方都能正确导入。

  1. 最简单的方法 - 确保ccxt安装在同一个Python环境,然后在项目根目录运行代码。

我通常用第3种方法,这样最干净。如果只是小脚本,直接确保所有文件在同一个目录下运行就行。

总结:把项目做成可安装的包最省心。


首先, 你得确定你的运行文件和 hunter 是不是在同级目录下,或者 hunter 在不在你的 python 库中
如果不满足上述条件, 就会出现 no moudle named hunter
解决方法参考: https://blog.csdn.net/pwc1996/article/details/52577148

了解了 python 的 import 中的坑

回到顶部