【问题标题】:How to install module name with an underscore in python?如何在python中安装带下划线的模块名称?
【发布时间】:2015-10-05 18:27:32
【问题描述】:

我正在尝试安装 Levenshtein 模块,如您所见 here

我可以通过python setup.py build 运行setup.py 文件。

然后,当我通过从终端执行 python 立即进入 python 时,在与文件夹 Levenshtein 相同的文件夹中时,我尝试导入它:

import Levenshtein,

但我收到以下错误:

    >>> import Levenshtein
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Levenshtein/__init__.py", line 1, in <module>
    from Levenshtein import _levenshtein
ImportError: cannot import name _levenshtein

当我查看文件夹 Levenshtein 时,我看到两个与该名称相似的文件:

 _levenshtein.c   _levenshtein.h

这个导入有什么意义,我应该如何获得一个名为 _levenshtein 的文件?

【问题讨论】:

  • 你需要编译它们。模块的setup.py 脚本通常在构建期间就已经这样做了。如果没有,请尝试python setup.py build_ext
  • 为什么不使用pippip install python-levenshtein
  • 它不会自动执行,或者看起来是这样。我会手动编译它们

标签: python import module init levenshtein-distance


【解决方案1】:

我认为您将 pypi 包名称与模块名称混淆了,它们不是一回事。

的确,大多数时候它们是相同的,因为对两者使用相同的名称是有意义的。

不过,大约 10-15% 的现有 pypi 包会安装不同名称的模块,有时会将多个模块作为同一个包的一部分。

所以,你必须找到正在安装你的模块的 pypi 包的名称,仅此而已。

【讨论】:

  • 你能举一个关于不同包名和模块名概念的虚构例子吗?还有 - 用户如何找出包中可用的模块名称是什么?
猜你喜欢
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
相关资源
最近更新 更多