conda build:刚创建的目录访问错误

conda build: Access error on just-created directory

我正在尝试使用 conda build . 构建一个 conda 包。我已经走得很远了,但是在测试之后,我得到了这个输出:

Renaming work directory,  C:\ProgramData\Miniconda3\envs\p37\conda-bld\<package-name>_1596716574942\work  to  
    C:\ProgramData\Miniconda3\envs\p37\conda-bld\<package-name>_1596716574942\work_moved_<package-name>-1.1.1-py38_0_win-64
Traceback (most recent call last):
  File "C:\ProgramData\Miniconda3\envs\p37\lib\shutil.py", line 566, in move
    os.rename(src, real_dst)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 
    'C:\ProgramData\Miniconda3\envs\p37\conda-bld\<package-name>_1596716574942\work' ->
    'C:\ProgramData\Miniconda3\envs\p37\conda-bld\<package-name>_1596716574942\work_moved_<package-name>-1.1.1-py38_0_win-64'

但是当 conda build 本身刚刚创建了整个目录时,怎么可能呢?为了安全起见,我只是重新启动,但这没有帮助。 运行 conda 也没有在管理员提示中构建。

为什么 conda build 是为 python 3.8 构建的? meta.yaml 指定 python>=3.6 并且我所在的 conda 环境安装了 Python 3.7 - 命令行上的 python --version 给出了 3.7.6。指定 conda build . --python=3.7 不会更改包名称 - 它仍然是 ...py38...

原因是我在 setup.py 中启动了一个子进程。有点令人困惑的是,它在一台机器上 100% 地工作,而在另一台机器上 100% 失败,而且在周末访问之前将程序留在断点(这样子进程应该有时间完成)。然而,改变

cmd = 'pandoc -s --toc -t html doc/manual.md -o '+html_path
subprocess.run(cmd)

os.system(cmd)

解决了我的问题。