xmake
xmake copied to clipboard
有没有可能让 rule python.library 可以指定python版本?
你在什么场景下需要该功能?
前段时间搞得python项目,用的pybind11,当时是py39,用起来非常的爽,似乎一切安好,但最近准备继续整,搞了好半天,一直都导入不了这个module,查了会儿,才发现,构建我这个项目的所用python已经默默的升级到了3.10,突然有种过去的项目经过了一段时间不是很牢靠的感觉。
然后我就在想,为什么会自动更新,查了一下相关的代码,得知,差不多两周前xmake-repo更新了python 3.10,然后我这边机器也自动下载了3.10
一开始是感觉惊讶,repo更新居然影响了旧项目,直到我看到了这个
package("pybind11")
-- .. --
add_deps("cmake", "python 3.x")
--..--
尝试按照下面方法覆盖python版本参数,没有效果
add_requires("pybind11")
add_requireconfs("pybind11.python", {version = "3.9"})
描述可能的解决方案
最好是可以在python.library
这个rule的项目里有个选项指定python版本
描述你认为的候选方案
我觉得可以这样
add_requires("python 3.9.x")
target("pytulo")
add_rules("python.library", {soabi = true, version = "3.9.x"})
--...--
add_packages("pybind11")
其他信息
No response
可以全局配置 set_policy("package.requires_lock", true)
,启用包依赖锁定。
尝试按照下面方法覆盖python版本参数,没有效果
配置 override = true
add_requireconfs("pybind11.python", {version = "3.9", override = true})