python from sync import Sync giving script error ModuleNotFoundError: No module named 'sync'
python from sync import Sync giving script error ModuleNotFoundError: No module named 'sync'
我正在尝试使用 Qualcomm Ubuntu 下的材料为 DragonBoard 410c 构建自己的 Android 20。我已经从 Qualcomm 开发人员门户网站下载了文件,linux_android_board_support_package_vla.br_.1.2.7-01010-8x16.0-4.zip
,包含我解压缩到文件夹 ~/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4
中的材料,使材料可用包括 shell 脚本 DB410c_build.sh
.
解包和设置由 DB410c_build.sh
完成,它执行各种操作,例如使用 [=51= 使用的 python 文件生成 .repo
目录树] 脚本和下载源代码。
我 运行 发现了来自各种 python 脚本的许多语法错误,看来这是为 python 2 编写的,到目前为止我已经能够解决.顺便说一下,python --version
报告 python 2.7.18
但我仍然看到错误表明正在使用 python 3。
最近的错误来自python脚本,.repo/repo/subcmds/smartsync.py
当它执行时,我得到以下错误,我一直无法找出或通过搜索找到解决方案。
Traceback (most recent call last):
File "/home/rick/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/.repo/repo/main.py", line 42, in <module>
from subcmds import all as all_commands
File "/home/rick/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/.repo/repo/subcmds/__init__.py", line 33, in <module>
mod = __import__(__name__,
File "/home/rick/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/.repo/repo/subcmds/smartsync.py", line 16, in <module>
from sync import Sync
ModuleNotFoundError: No module named 'sync'
完整的python源文件,smartsync.py
如下:
#
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from sync import Sync
class Smartsync(Sync):
common = True
helpSummary = "Update working tree to the latest known good revision"
helpUsage = """
%prog [<project>...]
"""
helpDescription = """
The '%prog' command is a shortcut for sync -s.
"""
def _Options(self, p):
Sync._Options(self, p, show_smart=False)
def Execute(self, opt, args):
opt.smart_sync = True
Sync.Execute(self, opt, args)
这只是从 https://developer.qualcomm.com/hardware/dragonboard-410c/software 试图使用
下载的文件中的 python 脚本的最新问题
Android Board Support Package
vLA.BR.1.2.7-01010-8x16.0-4
之前的大部分错误都是由于 except
和 raise
以及 print
的语法错误以及一些很容易出现的 import
错误造成的寻找解决方案(感谢 Whosebug!)。
但是我找不到关于这个的任何信息。
问题是由于文件夹 .repo/repo/subcmds
中的文件 smartsync.py
和该文件中的 from sync import Sync
语句存在语法错误。
sync
实际上引用的是文件 sync.py
,它也位于文件夹 .repo/repo/subcmds
中,而不是 [=33] 主体外部的某些 python 文件=]源代码。
from
语句缺少文件 sync.py
所在的目录说明符 subcmds
。为了从文件夹 subcmds
中的文件 sync.py
中导入 class Sync
,代码行应该写成 from subcmds.sync import Sync
。我认为这是因为 python 脚本是 运行,当前目录设置为 .repo/repo
而不是 .repo/repo/subcmds
.
对文件进行此更改后,脚本 运行 成功,直到另一个文件中的下一个错误需要更正。
我正在尝试使用 Qualcomm Ubuntu 下的材料为 DragonBoard 410c 构建自己的 Android 20。我已经从 Qualcomm 开发人员门户网站下载了文件,linux_android_board_support_package_vla.br_.1.2.7-01010-8x16.0-4.zip
,包含我解压缩到文件夹 ~/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4
中的材料,使材料可用包括 shell 脚本 DB410c_build.sh
.
解包和设置由 DB410c_build.sh
完成,它执行各种操作,例如使用 [=51= 使用的 python 文件生成 .repo
目录树] 脚本和下载源代码。
我 运行 发现了来自各种 python 脚本的许多语法错误,看来这是为 python 2 编写的,到目前为止我已经能够解决.顺便说一下,python --version
报告 python 2.7.18
但我仍然看到错误表明正在使用 python 3。
最近的错误来自python脚本,.repo/repo/subcmds/smartsync.py
当它执行时,我得到以下错误,我一直无法找出或通过搜索找到解决方案。
Traceback (most recent call last):
File "/home/rick/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/.repo/repo/main.py", line 42, in <module>
from subcmds import all as all_commands
File "/home/rick/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/.repo/repo/subcmds/__init__.py", line 33, in <module>
mod = __import__(__name__,
File "/home/rick/Documents/linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4/APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2/.repo/repo/subcmds/smartsync.py", line 16, in <module>
from sync import Sync
ModuleNotFoundError: No module named 'sync'
完整的python源文件,smartsync.py
如下:
#
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from sync import Sync
class Smartsync(Sync):
common = True
helpSummary = "Update working tree to the latest known good revision"
helpUsage = """
%prog [<project>...]
"""
helpDescription = """
The '%prog' command is a shortcut for sync -s.
"""
def _Options(self, p):
Sync._Options(self, p, show_smart=False)
def Execute(self, opt, args):
opt.smart_sync = True
Sync.Execute(self, opt, args)
这只是从 https://developer.qualcomm.com/hardware/dragonboard-410c/software 试图使用
下载的文件中的 python 脚本的最新问题Android Board Support Package
vLA.BR.1.2.7-01010-8x16.0-4
之前的大部分错误都是由于 except
和 raise
以及 print
的语法错误以及一些很容易出现的 import
错误造成的寻找解决方案(感谢 Whosebug!)。
但是我找不到关于这个的任何信息。
问题是由于文件夹 .repo/repo/subcmds
中的文件 smartsync.py
和该文件中的 from sync import Sync
语句存在语法错误。
sync
实际上引用的是文件 sync.py
,它也位于文件夹 .repo/repo/subcmds
中,而不是 [=33] 主体外部的某些 python 文件=]源代码。
from
语句缺少文件 sync.py
所在的目录说明符 subcmds
。为了从文件夹 subcmds
中的文件 sync.py
中导入 class Sync
,代码行应该写成 from subcmds.sync import Sync
。我认为这是因为 python 脚本是 运行,当前目录设置为 .repo/repo
而不是 .repo/repo/subcmds
.
对文件进行此更改后,脚本 运行 成功,直到另一个文件中的下一个错误需要更正。