我在哪里可以获得 Buildroot 上的 Python 2to3 库
Where can I get the Python 2to3 library on Buildroot
在 Buildroot Linux 系统上的 Python 2.7 中导入 gmusicapi 时出现以下错误:
>>> import gmusicapi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "gmusicapi/__init__.py", line 4, in <module>
from gmusicapi.clients import Webclient, Musicmanager, Mobileclient
File "gmusicapi/clients/__init__.py", line 4, in <module>
from gmusicapi.clients.webclient import Webclient
File "gmusicapi/clients/webclient.py", line 5, in <module>
from past.builtins import basestring
File "past/__init__.py", line 88, in <module>
from past.translation import install_hooks as autotranslate
File "past/translation/__init__.py", line 41, in <module>
from lib2to3.pgen2.parse import ParseError
ImportError: No module named lib2to3.pgen2.parse
Python 找不到 lib2to3。我也不行 ;-)。有什么地方可以下载这个库吗?我正在使用 Buildroot,所以我不能简单地进行 pip 安装。
这是不是的副本:
How to use/install python 2to3?
解决方法:修补过去的库(问题来源):
--- past/translation/__init__.py.orig 2017-09-24 08:23:47.646644743 +0200
+++ past/translation/__init__.py 2018-01-01 10:31:36.584576652 +0100
@@ -38,8 +38,32 @@
import os
import sys
import copy
-from lib2to3.pgen2.parse import ParseError
-from lib2to3.refactor import RefactoringTool
+
+try:
+ from lib2to3.pgen2.parse import ParseError
+
+except ImportError:
+
+ class ParseError(SyntaxError):
+ pass
+
+try:
+ from lib2to3.refactor import RefactoringTool
+
+except ImportError:
+
+ class RefactoringTool:
+
+ def __init__(self, *args, **kwargs):
+ self._args = [repr(a) for a in args]
+ self._args += ["{}={!r}".format(k, v) for k, v in kwargs.items()]
+
+ def __repr__(self):
+ return "{}({})".format(self.__class__.__name__, ", ".join(self._args))
+
+ def refactor_string(self, *args, **kwargs):
+ raise NotImplementedError("dummy RefactoringTool")
+
from libfuturize import fixes
在此处找到:https://github.com/PythonCharmers/python-future/issues/209
如果有人能给我指出可下载的 lib2to3,我会接受这个答案,目前这个解决方法可以解决问题。
lib2to3
是一个 标准库 ,通常包含在 Python 中。但是,buildroot 构建系统 explicitly removes it.
我不确定 Buildroot 是否真的允许您禁用他们的补丁; python.mk
file 似乎对标志进行了硬编码:
PYTHON_CONF_OPTS += \
--without-cxx-main \
--without-doc-strings \
--with-system-ffi \
--disable-pydoc \
--disable-test-modules \
--disable-lib2to3 \
--disable-gdbm \
--disable-tk \
--disable-nis \
--disable-dbm \
--disable-pyo-build \
--disable-pyc-build
而且我没有看到添加 --enable-lib2to3
来覆盖它的选项。您可能想咨询 Buildroot 社区是否可以选择。否则,我只是编辑那个 make 文件。
在 Buildroot Linux 系统上的 Python 2.7 中导入 gmusicapi 时出现以下错误:
>>> import gmusicapi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "gmusicapi/__init__.py", line 4, in <module>
from gmusicapi.clients import Webclient, Musicmanager, Mobileclient
File "gmusicapi/clients/__init__.py", line 4, in <module>
from gmusicapi.clients.webclient import Webclient
File "gmusicapi/clients/webclient.py", line 5, in <module>
from past.builtins import basestring
File "past/__init__.py", line 88, in <module>
from past.translation import install_hooks as autotranslate
File "past/translation/__init__.py", line 41, in <module>
from lib2to3.pgen2.parse import ParseError
ImportError: No module named lib2to3.pgen2.parse
Python 找不到 lib2to3。我也不行 ;-)。有什么地方可以下载这个库吗?我正在使用 Buildroot,所以我不能简单地进行 pip 安装。
这是不是的副本: How to use/install python 2to3?
解决方法:修补过去的库(问题来源):
--- past/translation/__init__.py.orig 2017-09-24 08:23:47.646644743 +0200
+++ past/translation/__init__.py 2018-01-01 10:31:36.584576652 +0100
@@ -38,8 +38,32 @@
import os
import sys
import copy
-from lib2to3.pgen2.parse import ParseError
-from lib2to3.refactor import RefactoringTool
+
+try:
+ from lib2to3.pgen2.parse import ParseError
+
+except ImportError:
+
+ class ParseError(SyntaxError):
+ pass
+
+try:
+ from lib2to3.refactor import RefactoringTool
+
+except ImportError:
+
+ class RefactoringTool:
+
+ def __init__(self, *args, **kwargs):
+ self._args = [repr(a) for a in args]
+ self._args += ["{}={!r}".format(k, v) for k, v in kwargs.items()]
+
+ def __repr__(self):
+ return "{}({})".format(self.__class__.__name__, ", ".join(self._args))
+
+ def refactor_string(self, *args, **kwargs):
+ raise NotImplementedError("dummy RefactoringTool")
+
from libfuturize import fixes
在此处找到:https://github.com/PythonCharmers/python-future/issues/209
如果有人能给我指出可下载的 lib2to3,我会接受这个答案,目前这个解决方法可以解决问题。
lib2to3
是一个 标准库 ,通常包含在 Python 中。但是,buildroot 构建系统 explicitly removes it.
我不确定 Buildroot 是否真的允许您禁用他们的补丁; python.mk
file 似乎对标志进行了硬编码:
PYTHON_CONF_OPTS += \
--without-cxx-main \
--without-doc-strings \
--with-system-ffi \
--disable-pydoc \
--disable-test-modules \
--disable-lib2to3 \
--disable-gdbm \
--disable-tk \
--disable-nis \
--disable-dbm \
--disable-pyo-build \
--disable-pyc-build
而且我没有看到添加 --enable-lib2to3
来覆盖它的选项。您可能想咨询 Buildroot 社区是否可以选择。否则,我只是编辑那个 make 文件。