问题描述
noarch
conda recipe 在 Windows 上构建时似乎不起作用,因为入口点获得了一个带有 .exe
扩展名的包装器。这让 conda-build
抱怨,结果包不再是 no-arch。这在某种程度上是有道理的,但同样不适用于 Linux 系统,我猜是因为缺少扩展名。
我想知道,如果
- 是否仍有可能构建包含入口点的
noarch-package
? - 是否有一种解决方法可以在没有扩展的情况下创建包装器?
包装看起来像这样
[options.entry_points]
console_scripts =
foo = bar:main
因此在 Windows 上的最终包中将包含一个 foo.exe
。
使用 conda-build
构建会导致如下错误:
Packaging foo
...
[noarch_python] Noarch package contains binary script: foo.exe
解决方法
https://github.com/conda/conda-build/issues/2627
在 conda 配方中定义与 setup.py/cfg 中相同的入口点时,问题解决了。这以某种方式创建了一个跨平台的包装器。