python-2.7 - 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
解决方案
对我来说,问题是我在保存所有项目的父目录中创建了一个 virtualenv。所以我有一种嵌套的 virtualenv 情况。删除与父目录对应的 /.local/share/virtualenv 中的 virtualenv 文件夹为我解决了这个问题。
推荐阅读
- r - 如何计算一代中不同姓氏缺失值的自回归?
- javascript - 将参数分配给函数内部的新值,好的还是坏的做法?
- c# - How to create a json with mixed type matrix in c#
- java - 如何将自定义视图与其他 UI 组件一起使用?
- javascript - XMLHttpRequest() 不从我的 node.js/express 呈现视图?
- ruby-on-rails - 在 Rails 中使用 escape_javascript 渲染部分时出错?
- arm - 如何通过UART读取firmware.bin文件?
- html - 将鼠标悬停在带有框阴影和过渡的项目上会导致溢出问题
- python - 在 django 中提交表单时出现值错误
- c# - 如何在 WinForms C# 中制作自定义 DataGridView 单元格