【发布时间】:2021-04-23 12:58:27
【问题描述】:
我有一个柯南配方,可以打包可执行文件并导出 python 文件,例如:
class MyPackageConan(ConanFile):
name = "my_package"
version = "1.0.0"
exports: "script.py"
def package(self):
if self.settings.os == "Windows"
self.copy("*", dst="bin", src="bin/Windows")
# if Linux, etc.
在另一个需要此包的配方中,从导出的 python 脚本访问函数的最简单方法是什么?
class MySecondPackageConan(ConanFile):
requires = "my_package/1.0.0"
def build(self):
# import foo() from script.py
似乎很适合这种情况:
class MyPackageConan(ConanFile):
name = "my_package"
version = "1.0.0"
settings = "os", "arch" # I omitted it for simplicity in previous example
def package(self):
self.copy("script.py")
if self.settings.os == "Windows":
self.copy("*.exe", dst="bin", src="Windows")
# elif Linux, Macos, ...
def package_info(self):
self.env_info.PYTHONPATH.append(self.package_folder)
【问题讨论】:
-
根据这篇文章:github.com/conan-io/conan/issues/7283#issuecomment-651808730 似乎我应该将
script.py复制到包而不是导出文件夹(conanfile.py 旁边)。然后我用 self.deps_cpp_info["my_package"].bin_paths 访问它