У меня была та же проблема, но моя основная причина отличалась от той, что была здесь. Мысль, которой я поделюсь, если кто-то столкнется с той же проблемой.
В моем случае я случайно поместил скобки в строку «с»:
with (open(os.path.join(curpath, unique_name)), 'w') as fw:
Дала следующую ошибку (изменена, чтобы скрыть детали компании и для ясности):
Traceback (most recent call last):
File "./crap.py", line 60, in uniquify
with (open(os.path.join(curpath, unique_name)), 'w') as fw:
IOError: [Errno 2] No such file or directory: '/<mypath>/bin/python/<filename>'
Эти скобки ставят 'w' с функцией with (), а не с open (), как предполагалось. Я удивлен, что выдает эту ошибку ввода-вывода, которая подразумевает, что это что-то не так с вызовом open (), что значительно усложнило его отслеживание, чем если бы оно явно происходило из вызова with ().
Я не поверил этим результатам, я просто изменил его, чтобы повторить, и да, я получаю ту же ошибку.
Когда я переключаю скобки на правильную версию:
with (open(os.path.join(curpath, unique_name), 'w')) as fw:
работает как задумано.