在pip3中安装jupyterlab会抛出'TypeError:期望的字符串或类似字节的对象'

时间:2018-03-01 23:38:35

标签: python python-3.x jupyter-notebook jupyter-lab

背景

  • 我尝试使用Content Security Policy: Couldn’t process unknown directive ‘report-to’安装Jupyter Lab,但它也犯了同样的错误。

  • 我没弄清楚。找到了使用pip3 install jupyterlab的解决方法 - 它有效,但显然是一个绑定修复。

  • 尝试在python3笔记本中运行pip2 install jupyterlab(在jupyter实验室内);找不到模块。

  • 我在PC上使用Cygwin作为我的linux模拟器。

  • 我比python 2.7更喜欢python3.x。

我尝试解决此问题

我很难解释Traceback,但现在它在下面:

import pandas as pd

为什么返回的版本不是字符串或字节?我的python 3.6包本身有错误吗?我正在考虑在回溯中打开这些文件以查看我是否可以调试它,但我认为在尝试听起来有点荒谬的事情之前我应该​​寻求帮助,imo。

我尝试过的其他事情

  • $ pip install --upgrade pip Exception: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/lib/python3.6/site-packages/pip/commands/install.py", line 335, in run wb.build(autobuilding=True) File "/usr/lib/python3.6/site-packages/pip/wheel.py", line 749, in build self.requirement_set.prepare_files(self.finder) File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 380, in prepare_files ignore_dependencies=self.ignore_dependencies)) File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 487, in _prepare_file req_to_install, finder) File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 428, in _check_skip_installed req_to_install, upgrade_allowed) File "/usr/lib/python3.6/site-packages/pip/index.py", line 465, in find_requirement all_candidates = self.find_all_candidates(req.name) File "/usr/lib/python3.6/site-packages/pip/index.py", line 427, in find_all_candidates self._package_versions(page.links, search) File "/usr/lib/python3.6/site-packages/pip/index.py", line 595, in _package_versions v = self._link_package_versions(link, search) File "/usr/lib/python3.6/site-packages/pip/index.py", line 667, in _link_package_versions support_this_python = check_requires_python(link.requires_python) File "/usr/lib/python3.6/site-packages/pip/utils/packaging.py", line 34, in check_requires_python return python_version in requires_python_specifier File "/usr/lib/python3.6/site-packages/packaging/specifiers.py", line 698, in __contains__ return self.contains(item) File "/usr/lib/python3.6/site-packages/packaging/specifiers.py", line 703, in contains item = parse(item) File "/usr/lib/python3.6/site-packages/packaging/version.py", line 31, in parse return Version(version) File "/usr/lib/python3.6/site-packages/packaging/version.py", line 200, in __init__ match = self._regex.search(version) TypeError: expected string or bytes-like object - 这会返回一条消息,说python2.7中的pip是最新的。

追溯(pip2):

pip2 install --upgrade pip
  • $ pip2 install --upgrade pip Requirement already up-to-date: pip in /usr/lib/python2.7/site-packages - 返回
  • 上面的相同TypeError

Traceback(pip3):查看第一个Traceback

pip版本和python网站输出

pip3 install --upgrade pip

2 个答案:

答案 0 :(得分:1)

真正的解决方法就是硬着头皮,使用虚拟环境来确保程序包正常运行,无论是使用Anaconda还是直接通过命令行。

我当时处于时间紧缩状态,下面3000英镑的答案给了我创可贴以完成我需要做的事情。我将把它留在这里用于存档。


注释中每ᴡʜᴀᴄᴋᴀᴍᴀᴅᴏᴏᴅʟᴇ3000的答案已被删除,此问题得以解决。如果您的年龄是3000英镑,并且看到了此修改,请随时发表评论,我可以将其标记为“已接受的答案”。根据Greg Schmit的建议,我也将答案移至了本节。我是stackexchange的新手,所以如果您知道如何联系ᴡʜᴀᴄᴋᴀᴍᴀᴅᴏᴏᴅʟᴇ3000,请提供帮助。除非有人可以提供更多见解,否则这是目前的答案。不确定这种并发症是否与cygwin有关。

  • 打开的文件“ /usr/lib/python3.6/site-packages/packaging/version.py”

  • 将第200行的代码从match = self._regex.search(version)更改为match = self._regex.search(str(version))

  • 重新运行代码pip3 install jupyterlab

现在,当我运行import pandas as pd时,在jupyterlab中就可以识别python3 pandas模块

答案 1 :(得分:0)

我对现有的*.egg-info文件存在一些问题,删除了允许再次使用的点子