微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想将 conafile.py 一分为二,两个文件都包含一些方法,然后将第二个 .py 文件的方法继承到 conanfile.py

如何解决我想将 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 举报,一经查实,本站将立刻删除。