为什么只有在运行python脚本时才会出现“ImportError”?

时间:2018-01-17 12:35:51

标签: python pip

我有一个Python脚本,我导入datadog模块。当我运行python datadog.py时,它会失败并显示ImportError: cannot import name statsd。该脚本以以下行开头:

import os
import mysql.connector

from time import time
from datadog import statsd

实际错误消息如下:

$ python /mnt/datadog.py
Traceback (most recent call last):
  File "/mnt/datadog.py", line 5, in <module>
    from datadog import statsd
  File "/mnt/datadog.py", line 5, in <module>
    from datadog import statsd
ImportError: cannot import name statsd

但是当我使用Python shell(由python命令启动)时,我可以成功运行from datadog import statsd。这有什么区别?

顺便说一句,我的计算机中安装了适当的Python包:

$ pip freeze | egrep 'datadog|mysql'
datadog==0.17.0
mysql-connector==2.1.6

$ python --version
Python 2.7.5

2 个答案:

答案 0 :(得分:3)

问题是您的脚本名为datadog.py。因此,当它导入模块datadog时,它会自行导入。

答案 1 :(得分:-1)

首先按

安装statsd
pip install statsd

然后做

import statsd