首页 > 解决方案 > pipenv:TypeError:强制转换为 Unicode:需要字符串或缓冲区,找到类型

问题描述

我正在尝试使用 pipenv 在我的项目存储库中安装 pyspark 2.4.0。我正在尝试创建一个 virtualenv 以避免库版本与其他各种项目发生冲突。

在 Ubuntu 14.04 中运行以下命令

pipenv install pyspark==2.4.0

pipenv 以:

Pipfile: /path/to/Pipfile
Using /usr/bin/python (2.7.12) to create virtualenv…
Already using interpreter /usr/bin/python
New python executable in /path/to/.local/share/virtualenvs/services-6pEnYP44/bin/python
Installing setuptools, pkg_resources, pip, wheel...
Complete output from command /path/to/.local/s...-6pEnYP44/bin/python - setuptools pkg_resources pip wheel:
Traceback (most recent call last):
File "<stdin>", line 24, in <module>
File "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/__init__.py", line 215, in main
File "/path/to/.local/share/virtualenvs/services-6pEnYP44/lib/python2.7/locale.py", line 581, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
----------------------------------------
...Installing setuptools, pkg_resources, pip, wheel...done.
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 2363, in <module>
main()
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 719, in main
symlink=options.symlink)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 988, in create_environment
download=download,
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 918, in install_wheel
call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
File "/usr/lib/python2.7/dist-packages/virtualenv.py", line 812, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /path/to/.local/s...-6pEnYP44/bin/python - setuptools pkg_resources pip wheel failed with error code 1

Traceback 看起来像这样:

Traceback (most recent call last):
File "/usr/local/bin/pipenv", line 11, in <module>
sys.exit(cli())
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/pipenv/cli/command.py", line 249, in install
editable_packages=state.installstate.editables,
File "/usr/local/lib/python2.7/dist-packages/pipenv/core.py", line 1724, in do_install
pypi_mirror=pypi_mirror,
File "/usr/local/lib/python2.7/dist-packages/pipenv/core.py", line 565, in ensure_project
pypi_mirror=pypi_mirror,
File "/usr/local/lib/python2.7/dist-packages/pipenv/core.py", line 500, in ensure_virtualenv
python=python, site_packages=site_packages, pypi_mirror=pypi_mirror
File "/usr/local/lib/python2.7/dist-packages/pipenv/core.py", line 901, in do_create_virtualenv
click.echo(crayons.blue("{0}".format(c.err)), err=True)
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/delegator.py", line 146, in err
return self._pexpect_out
File "/usr/local/lib/python2.7/dist-packages/pipenv/vendor/delegator.py", line 114, in _pexpect_out
result += self.subprocess.after
TypeError: coercing to Unicode: need string or buffer, type found

pipenv 无法安装 pyspark 版本:TypeError: coercing to Unicode: need string or buffer, type found

pipenv version: 2018.10.13
python version: 2.7.12

标签: python-2.7pysparkubuntu-14.04pipenv

解决方案


对我来说,问题是我在保存所有项目的父目录中创建了一个 virtualenv。所以我有一种嵌套的 virtualenv 情况。删除与父目录对应的 /.local/share/virtualenv 中的 virtualenv 文件夹为我解决了这个问题。


推荐阅读