如何解决我想将 conafile.py 一分为二,两个文件都包含一些方法,然后将第二个 .py 文件的方法继承到 conanfile.py
我有两个文件(conanfile.py 和 parent_conanfile.py)。
conanfile.py
from conans import ConanFile,CMake
from parent_conanfile import Parent_ASAR
import os
class ASAR(ConanFile):
name = "hello1"
author = "WindRunner"
revision_mode = "scm"
scm = {
"type": "git","url": "auto","revision": "auto"
}
settings = "os","os_build","arch","arch_build","compiler","build_type"
def package(self):
self.copy("*",src="Configurator",dst="Configurator",links=True)
self.copy("*",src="Generators",dst="Generators")
parent_conanfile.py
from conans import ConanFile,CMake
import os
class Parent_ASAR(object):
name = "hello"
author = "WindRunner"
def source(self):
pass
def configure(self):
pass
def requirements(self):
pass
def build(self):
compiler = self.settings.compiler
compiler_version = self.settings.compiler.version
arch = self.settings.arch
os = str(self.settings.os).lower()
build_type = str(self.settings.build_type).lower()
toolchain_file = f"CMakeSupport/toolchain/{compiler}/{compiler}-{compiler_version}/{arch}/{os}_{build_type}.toolchain"
self.output.info(f"Used toolchain file: {toolchain_file}")
model_dir = ("Examples/DeliveryDefaultModel")
for target in self.targetList:
self.run(
"./BuildHelper/BuildHelper \
--cmake-options-file BuildHelper/config/development.json \
--model-dir {0} \
--target {1} \
--sip-dir {2} \
--build-dir {3} \
--install {4} \
--cmake-toolchain-file {5} \
".format(
model_dir,target,self.source_folder,self.build_folder,self.package_folder,toolchain_file
)
)
def package_info(self):
self.cpp_info.includedirs = ['include']
self.cpp_info.libdirs = ['lib']
def deploy(self):
self.copy("*",src="etc",dst="etc")
self.copy("*",src="opt",dst="opt")
self.copy("*",src="sbin",dst="sbin")
self.copy("*",src="scripts",dst="usr/local")
self.copy("*",src="BuildHelper",dst="BuildHelper")
当我运行命令时:
conan create . hello1/1.0@
当我运行此命令时,我收到以下错误:
ERROR: hello1/1.0@swf/testing: Cannot load recipe.
Error loading conanfile at '/home/ak/.conan/data/hello1/1.0/swf/testing/export/conanfile.py': Unable to load conanfile in /home/ak/.conan/data/hello1/1.0/swf/testing/export/conanfile.py
File "/usr/lib/python3.6/imp.py",line 172,in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>",line 684,in _load
File "<frozen importlib._bootstrap>",line 665,in _load_unlocked
File "<frozen importlib._bootstrap_external>",line 678,in exec_module
File "<frozen importlib._bootstrap>",line 219,in _call_with_frames_removed
File "/home/ak/.conan/data/hello1/1.0/swf/testing/export/conanfile.py",line 15,in <module>
from parent_conanfile import Parent_ASAR
ModuleNotFoundError: No module named 'parent_conanfile'
不过,如果我在类中创建另一个方法并在 conanfile.py 中显式调用该方法,该方法似乎可以运行,但仍会出现相同的错误。 柯南是否允许这种方式从另一个文件中导入一半的配方?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。