【发布时间】:2021-11-04 13:41:37
【问题描述】:
本地环境
$ uname -a
Darwin Mac-mini.local 20.6.0 Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:31 PDT 2021; root:xnu-7195.141.2~5/RELEASE_X86_64 x86_64
$ python3 --version
Python 3.9.7
$ cmake --version
cmake version 3.21.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ xcode-select --version
xcode-select version 2384.
Xcode:版本 12.5.1 (12E507)
问题
我有一些大型的构建由cmake 管理。
现在一些依赖是通过 python 脚本下载的。需要paramiko 库,因为其中一些依赖项是使用 ssh/sftp 连接搜索和下载的。这些细节并不重要。
现在,当我从命令行运行此脚本时,它可以完美运行。它会找到所有 python 模块,并且能够下载所有依赖项。
从CMakeLists.txt 中的cmake 命令调用相同的脚本时会出现问题。脚本失败,因为它无法加载 paramiko 库,这很奇怪,因为如果直接从与 cmake .. -G Xcode 相同的命令行运行脚本可以工作。
基本上是这样的:
add_custom_target(DependenciesDownload ALL ./download.py <some arguments>
BYPRODUCTS
"${CMAKE_CURRENT_BINARY_DIR}/poroduct/libproduct.${PRODUCT_EXTENSION}"
WORKING_DIRECTORY "${PROJECT_SRC_ROOT}/scriptPath"
COMMENT "Unzips dependency from SMB network drive or sftp address"
)
我还尝试了显式调用 python 的版本:python3 ./download.py <some arguments> 和 env python3 ./download.py <some arguments>,结果完全相同。
注意
我在其他 MacOS 机器上遇到了同样的问题,它开始正常工作我不知道我做了什么让它工作,我现在无法复制。
【问题讨论】: