首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python 3中使用slugify?

如何在Python 3中使用slugify?
EN

Stack Overflow用户
提问于 2017-05-20 00:19:02
回答 2查看 23K关注 0票数 29

我正在尝试使用我使用pip3 install slugify安装的slugify。但是,在解释器中,如果我尝试对字符串'hello'进行图形化,我会看到以下内容:

代码语言:javascript
复制
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from slugify import slugify

In [2]: slugify('hello')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-a58110f37579> in <module>()
----> 1 slugify('hello')

/usr/local/lib/python3.5/dist-packages/slugify.py in slugify(string)
     22 
     23     return re.sub(r'[-\s]+', '-',
---> 24             unicode(
     25                 re.sub(r'[^\w\s-]', '',
     26                     unicodedata.normalize('NFKD', string)

NameError: name 'unicode' is not defined

In [3]: slugify(u'hello')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-3-acc9f7b8d41e> in <module>()
----> 1 slugify(u'hello')

/usr/local/lib/python3.5/dist-packages/slugify.py in slugify(string)
     22 
     23     return re.sub(r'[-\s]+', '-',
---> 24             unicode(
     25                 re.sub(r'[^\w\s-]', '',
     26                     unicodedata.normalize('NFKD', string)

NameError: name 'unicode' is not defined

相比之下,在Python 2中,后者可以工作:

代码语言:javascript
复制
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
Type "copyright", "credits" or "license" for more information.

IPython 2.4.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from slugify import slugify

In [2]: slugify(u'hello')
Out[2]: u'hello'

我怎样才能让它在Python3中工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-20 00:21:50

slugify package you installed不是为Python3构建的,它目前只支持Python2,而且它不太可能会更新。最简单的判断方法之一是,在整个源代码中,它使用了Python2关键字unicode,而Python3中不存在这个关键字。

你可能是这样做的:

代码语言:javascript
复制
pip install slugify

那是一个过时的包,不是你链接的那个。

要安装您链接的slugify包,请在安装时将其命名为python-slugify,它支持所有最新的https://pypi.python.org/pypi/python-slugify版本。并且有更多的功能。

代码语言:javascript
复制
pip install python-slugify

并以与其他包相同的方式导入:

代码语言:javascript
复制
from slugify import slugify

注意:您必须删除安装的原始软件包,因为它们使用相同的名称。

票数 65
EN

Stack Overflow用户

发布于 2020-06-14 14:08:34

安装python-slugify

pip install python-slugify

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44074682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档