conda-build 使用旧的(陈旧的)setup.py

Posted

技术标签:

【中文标题】conda-build 使用旧的(陈旧的)setup.py【英文标题】:conda-build using an old (stale) setup.py 【发布时间】:2019-01-28 16:49:45 【问题描述】:

我正在尝试从一些 python 源文件和其他 DLL 文件生成一个 conda 包(使用 conda-build)。我首先使用 setup.py 文件在 dist 文件夹中生成 python 源代码 tar.gz 文件。这一切都很好。

然后我尝试使用 conda-build 创建一个 conda tarball (tar.bz2) 文件。然而,它却说它不能在 setup.py 中处理好 py2exe。我曾在 setup.py 中导入 py2exe 作为实验,但此后将其删除。当前的 setup.py 没有这个导入。所以,我不确定为什么 conda-build 仍然抱怨这个。我什至尝试删除我认为可能导致问题的所有文件和目录并从头开始,但它仍然会抱怨。所以,它使用了某个地方的缓存文件,但我不知道在哪里。我的 conda-build 使用的 bld.bat 就是这样:

%PYTHON% setup.py install
if errorlevel 1 exit 1

我的食谱文件是:

package:
  name: projectname
  version: 1.0.0

source:
  url: ../dist/projectname-1.0.0.tar.gz

build:
  number: 1
  include_recipe: True

requirements:
  build:
    - python
  run:
    - python

这里是 conda-build 的相关输出:

(%BUILD_PREFIX%) %SRC_DIR%>%BUILD_PREFIX%\python.exe setup.py install Traceback(最近一次调用最后一次):文件“setup.py”,第 2 行,在 import py2exe ModuleNotFoundError: No module named 'py2exe'

(%BUILD_PREFIX%) %SRC_DIR%>如果错误级别 1 退出 1 回溯(大多数 最近通话最后):文件 “d:\Continuum\anaconda3.5\Scripts\conda-build-script.py”,第 10 行,在 sys.exit(main())

【问题讨论】:

【参考方案1】:

我能够解决问题。对于可能遇到此问题的其他任何人,我对 setup.py 进行了全局搜索,并在 conda-build 生成的 conda-bld 文件夹中找到了有问题的文件。我删除了 conda-bld 并解决了问题。

【讨论】:

以上是关于conda-build 使用旧的(陈旧的)setup.py的主要内容,如果未能解决你的问题,请参考以下文章

并行运行 conda-build 是不是安全?

当使用 conda-build 构建 conda 包并且我的代码使用纯 python 库时,我需要在 meta.yaml 文件中的 build/host/run 中放入啥?

如何使 conda-build 正常工作并找到 setup.py?

为啥在 conda-build 的构建过程中将 $CONDA_PREFIX 设置为 $BUILD_PREFIX?

官方 AnacondaRecipes/opencv-feedstock 的 conda-build 无法查找 libpng.h

SOD让你的旧代码焕发青春