Я пытаюсь обновить скрипт python, который запускает исполняемый файл в Windows и управляет текстовыми выходными файлами, в версию, использующую несколько процессов с несколькими потоками, поэтому я могу использовать более одного ядра. У меня есть четыре отдельные версии исполняемого файла, которые каждый поток знает для доступа. Эта часть работает нормально. Когда я сталкиваюсь с проблемами, это когда они работают одновременно и пытаются открыть (разные) выходные файлы, чтобы гарантировать, что они работают правильно и реагируют в зависимости от содержимого выходного файла.python многопоточные процессы для запуска исполняемых файлов
В частности, при выполнении трех нитей, две разобьет со следующей ошибкой, в то время как один продолжает работать:
Exception in thread Thread-4:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 552, in __bootstrap_inner
self.run()
File "E:\HDA\HDA-1.0.1\Hm-1.0.1.py", line 782, in run
conf = self.conf_file(Run)
File "E:\HDA\HDA-1.0.1\Hm-1.0.1.py", line 729, in conf_file
l = open(self.run_dir(Run)+Run, 'r').readlines() #list of file lines
IOError: [Errno 2] No such file or directory: 'Path/to/Outputfile'
В результате из потока не работает правильно исполняемым (т.е. почему «путь/к/Outputfile 'не был создан и, следовательно, не может быть найден). Но один из потоков делает это правильно, в то время как другие два не могут. Есть ли причина, по которой я не могу получить несколько потоков, выполняющих разные версии исполняемого файла?
Использовать темы У меня проблемы с двумя «Я знаю», я думаю –
Типичным вопросом был бы вызов os.chdir() где-то, поскольку текущий рабочий каталог является свойством процесса. – schlenk