python - 为什么只有在运行 python 脚本时才得到 "ImportError"?

标签 python pip

我有一个Python脚本,我在其中导入datadog模块。当我运行python datadog.py时,它失败并显示ImportError:无法导入名称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

最佳答案

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

关于python - 为什么只有在运行 python 脚本时才得到 "ImportError"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48301318/

相关文章:

Python正则表达式捕获跨越多行的多个匹配项

Python - 用户输入以确定 while 循环中的条件

python - 使用 Pandas 数据框中的列作为查找来选择同一 df 中的第二列两次,然后对结果进行比较

python - 为什么将格式信息添加到具有元组值的 f 字符串会引发 TypeError?

python - 重命名 virtualenv 文件夹而不破坏它

python - 安装CUDA工具包和cuDNN后Tensorflow不识别GPU

python - Ubuntu 18.04 中的 PIP 问题 (pkg_resources.DistributionNotFound : The 'pip==10.0.1' distribution was not found and is required by the application)

python - Pip 无法识别 torchaudio 库

python - Mac OS High Sierra : Tensorflow verions returned by `pip3 upgrade ` and `python3 -c ' import tensorflow as tf; print(tf. __version__ )'` 不同

python - 当我 pip 安装要求时,无限循环不兼容(Django1.99)