【问题标题】:What is wrong with this small Python Package?这个小的 Python 包有什么问题?
【发布时间】:2017-03-26 04:26:33
【问题描述】:

我想在 Python 上构建一个简单的标记器包。但是当我在虚拟环境中本地安装后尝试运行它时,它拒绝导入。

pip install git+https://github.com/djokester/tokenizer 

然后

>>> import tokenizer 

Traceback(最近一次调用最后一次):文件“”,第 1 行,in ImportError:没有名为“tokenizer”的模块

你能告诉我包裹有什么问题吗? 链接在这里 https://github.com/djokester/tokenizer

【问题讨论】:

  • 在 setup.py 中,我看到了name='Tokenizer'。这是否意味着您需要改为import Tokenizer
  • @Code-Apprentice No. NumPy 也可以作为 numpy 导入。

标签: python packages pypi


【解决方案1】:

模块的名称是tokenize,而不是分词器。以下作品。

/ # pip install 'git+https://github.com/djokester/tokenize' --upgrade
Collecting git+https://github.com/djokester/tokenize
  Cloning https://github.com/djokester/tokenize to /tmp/pip-BOScTb-build
Installing collected packages: Tokenize
  Running setup.py install for Tokenize ... done
Successfully installed Tokenize-0.1
/ #
/ # python
Python 2.7.13 (default, Mar  3 2017, 23:23:44) 
[GCC 5.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import tokenize
>>> dir(tokenize)
['AMPER', 'AMPEREQUAL', 'AT', 'BACKQUOTE', 'Binnumber', 'Bracket', 'CIRCUMFLEX', 'CIRCUMFLEXEQUAL', 'COLON', 'COMMA', 'COMMENT', 'Comment', 'ContStr', 'DEDENT', 'DOT', 'DOUBLESLASH', 'DOUBLESLASHEQUAL', 'DOUBLESTAR', 'DOUBLESTAREQUAL', 'Decnumber', 'Double', 'Double3', 'ENDMARKER', 'EQEQUAL', 'EQUAL', 'ERRORTOKEN', 'Expfloat', 'Exponent', 'Floatnumber', 'Funny', 'GREATER', 'GREATEREQUAL', 'Hexnumber', 'INDENT', 'ISEOF', 'ISNONTERMINAL', 'ISTERMINAL', 'Ignore', 'Imagnumber', 'Intnumber', 'LBRACE', 'LEFTSHIFT', 'LEFTSHIFTEQUAL', 'LESS', 'LESSEQUAL', 'LPAR', 'LSQB', 'MINEQUAL', 'MINUS', 'NAME', 'NEWLINE', 'NL', 'NOTEQUAL', 'NT_OFFSET', 'NUMBER', 'N_TOKENS', 'Name', 'Number', 'OP', 'Octnumber', 'Operator', 'PERCENT', 'PERCENTEQUAL', 'PLUS', 'PLUSEQUAL', 'PlainToken', 'Pointfloat', 'PseudoExtras', 'PseudoToken', 'RBRACE', 'RIGHTSHIFT', 'RIGHTSHIFTEQUAL', 'RPAR', 'RSQB', 'SEMI', 'SLASH', 'SLASHEQUAL', 'STAR', 'STAREQUAL', 'STRING', 'Single', 'Single3', 'Special', 'StopTokenizing', 'String', 'TILDE', 'Token', 'TokenError', 'Triple', 'Untokenizer', 'VBAR', 'VBAREQUAL', 'Whitespace', '__all__', '__author__', '__builtins__', '__credits__', '__doc__', '__file__', '__name__', '__package__', 'any', 'chain', 'double3prog', 'endprogs', 'generate_tokens', 'group', 'main', 'maybe', 'printtoken', 'pseudoprog', 're', 'single3prog', 'single_quoted', 'string', 't', 'tabsize', 'tok_name', 'tokenize', 'tokenize_loop', 'tokenprog', 'triple_quoted', 'untokenize']
>>> 

【讨论】:

  • tokenize 已经是 python 中的一个现有包。我将包的名称更改为标记器,它不起作用。任何提示出了什么问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多