如何搜索包含modu的pip包

2024-05-19 10:28:21 发布

您现在位置:Python中文网/ 问答频道 /正文

如果您继承了一些具有include的python代码,但是您不知道以前安装了哪些包来满足这些include的要求,那么如何搜索包含该模块的pip包呢?你知道吗

在本例中,我试图找到要安装的pip包,以满足以下要求:

from django.utils.encoding import smart_str, smart_unicode

通过安装Django,我能够满足smart_str,但我仍然没有smart_unicode。你知道吗

pip search没有帮助,因为它只搜索名称与您的搜索匹配的包。它不会告诉您哪些包包含特定的模块或其他命名对象,如smart_unicode。大约有一百万个包的名称中有一些django的变体。你知道吗

在找出答案一次之后,我将把它写入一个requirements.txt文件中,以防止将来使用这个特定的python文件出现这个问题。你知道吗

如何搜索包含模块的pip包?你知道吗


Tags: 模块pip文件django代码fromimport名称
2条回答

这个函数存在于Django中,但是您必须使用python2或将应用程序移植到现代Python和现代Django。你知道吗

很可能您使用的是python3和Django 2。很可能您继承的代码是为同样支持Python2的Django版本(可能是1.XX版本)编写的,并且他们没有按照要求提供正确的Django版本。因此,在执行pip install时,必须显式指定django1.xx的特定版本,这样pip install django=1.11之类的操作会有所帮助。你知道吗

下面是我手头的django 1.11代码的一个简短片段


if six.PY3:
    smart_str = smart_text
    force_str = force_text
else:
    smart_str = smart_bytes
    force_str = force_bytes
    # backwards compatibility for Python 2
    smart_unicode = smart_text
    force_unicode = force_text

因此,用smart_text替换代码中所有出现的smart_unicode会使它工作起来,并使它有一点未来的证明(至少是这一部分)。你知道吗

从长远来看,可以考虑使用python3和受支持的Django版本。你知道吗

相关问题 更多 >

    热门问题