首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >"TypeError: join()参数必须是字符串或字节,而不是“NoneType”“

"TypeError: join()参数必须是字符串或字节,而不是“NoneType”“
EN

Stack Overflow用户
提问于 2018-08-22 03:42:08
回答 1查看 4.1K关注 0票数 0

我在Word2vec上使用magpie -- Tensorflow上的一个多标签分类器。使用Python 2.7可以很好地进行训练,但使用Python 3.x时会出现以下错误。我使用的是Ubuntu 16.04.5 LTS,奇怪的是,Python 3.x代码在另一台Ubuntu机器上运行良好。我已经更新了我的依赖项: word2vec、magpie、tf,但不确定可能出了什么问题。

/usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
Using TensorFlow backend.
/usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
/usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
/usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
/usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
Traceback (most recent call last):
  File "train_magpie.py", line 1, in <module>
    from magpie import Magpie
  File "/usr/local/lib/python3.5/dist-packages/magpie/__init__.py", line 1, in <module>
    from .main import Magpie
  File "/usr/local/lib/python3.5/dist-packages/magpie/main.py", line 12, in <module>
    from magpie.base.word2vec import train_word2vec, fit_scaler
  File "/usr/local/lib/python3.5/dist-packages/magpie/base/word2vec.py", line 7, in <module>
    from gensim.models import Word2Vec
  File "/usr/local/lib/python3.5/dist-packages/gensim/__init__.py", line 6, in <module>
    from gensim import parsing, matutils, interfaces, corpora, models, similarities, summarization
  File "/usr/local/lib/python3.5/dist-packages/gensim/parsing/__init__.py", line 7, in <module>
    from .preprocessing import *
  File "/usr/local/lib/python3.5/dist-packages/gensim/parsing/preprocessing.py", line 10, in <module>
    from gensim import utils
  File "/usr/local/lib/python3.5/dist-packages/gensim/utils.py", line 50, in <module>
    from smart_open import smart_open
  File "/usr/local/lib/python3.5/dist-packages/smart_open/__init__.py", line 1, in <module>
    from .smart_open_lib import *
  File "/usr/local/lib/python3.5/dist-packages/smart_open/smart_open_lib.py", line 45, in <module>
    from boto.compat import BytesIO, urlsplit, six
  File "/usr/lib/python3/dist-packages/boto/__init__.py", line 1216, in <module>
    boto.plugin.load_plugins(config)
  File "/usr/lib/python3/dist-packages/boto/plugin.py", line 92, in load_plugins
    for file in glob.glob(os.path.join(directory, '*.py')):
  File "/usr/lib/python3.5/posixpath.py", line 89, in join
    genericpath._check_arg_types('join', a, *p)
  File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
    (funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'NoneType'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 04:42:45

例外来自boto/plugin.py。由于某些原因,它获取None而不是某个目录名称的字符串,然后尝试全局处理None下的所有文件,这会失败,因为您无法将全局模式os.path.joinNone

那么,它为什么要这么做呢?

最有可能的是,你的boto插件目录中有一些垃圾。或者,如果不在那里,在您的配置中。(如果boto对这种情况有更好的错误处理,那就好了,但它可能不会经常出现在…中)

有一个很好的机会,只要卸载并重新安装你的boto插件就可以修复它。

对于将来阅读这篇文章的任何人:

如果您的异常以此结尾(可能不同的行号和版本号除外):

  File "/usr/lib/python3/dist-packages/boto/__init__.py", line 1216, in <module>
    boto.plugin.load_plugins(config)
  File "/usr/lib/python3/dist-packages/boto/plugin.py", line 92, in load_plugins
    for file in glob.glob(os.path.join(directory, '*.py')):
  File "/usr/lib/python3.5/posixpath.py", line 89, in join
    genericpath._check_arg_types('join', a, *p)
  File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
    (funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'NoneType'

…这是同一个bug。但是,如果重新安装你的boto插件没有帮助,你需要创建一个新的问题。(并包括在插件目录上调用findtree的结果,配置文件的内容,以及所有相关的版本号。)

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

https://stackoverflow.com/questions/51955647

复制
相关文章

相似问题

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