conda build: ошибка доступа к только что созданному каталогу - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь собрать пакет conda с conda build .. Я захожу довольно далеко, но после тестов я получаю следующий результат:

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 только что создала весь каталог? Я просто перезагрузился на всякий случай, но это не помогло. Также не удалось запустить conda build в командной строке администратора.

И почему conda build build для python 3.8? В meta.yaml указано python>=3.6, а в среде conda, в которой я нахожусь, установлено Python 3.7 - python --version в командной строке дает 3.7.6. Указание conda build . --python=3.7 не меняет имени пакета - это все еще ... py38 ...

1 Ответ

0 голосов
/ 10 августа 2020

Причина в том, что я запускал подпроцесс в setup.py. Несколько озадачило то, что это работало на 100% на одной машине и на 100% давало сбой на другой, а также то, что программа оставалась в точке останова непосредственно перед доступом в выходные дни (так что подпроцессы должны успеть завершить sh). Однако изменение

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

на

os.system(cmd)

решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...