问题描述
我有两个文件(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 (将#修改为@)