Я создал небольшой пример, чтобы продемонстрировать ошибку, которую я вижу, пытаясь использовать pyinstaller для сборки исполняемой программы. Мой Python 3.6.5 и установлен / home / repos / ges / Python / bin. Я не был уверен, что нестандартная установка Python играет важную роль в ошибке.
import time
import random
from multiprocessing.dummy import Pool as ThreadPool
# A function to run against a list
def this_job(job):
time_delay = random.randrange(0, 5)
time.sleep(time_delay)
print("after a small " + str(time_delay) + " second delay here is job " + str(job))
forked_jobs = []
for i in range(500):
forked_jobs.append(i)
# Make the Pool of workers and do the work
pool = ThreadPool(10)
pool.map(this_job, forked_jobs)
# close the pool and wait for the work to finish
pool.close()
pool.join()
Я могу запустить файл с того места, где я его написал, и увидеть вывод, похожий на:
после небольшой 0-секундной задержки вот работа 52
после небольшой 0-секундной задержки вот работа 117
после небольшой 1-секундной задержки вот работа 39
после небольшой 1-секундной задержки вот работа 65 ...
Когда я пытаюсь построить это с помощью ./python3 pyinstaller bp2.py и запускаю исполняемый файл в папке dist, я вижу следующую ошибку.
Traceback (последний вызов был последним):
Файл "site-packages / PyInstaller / loader / rthooks / pyi_rth_multiprocessing.py", строка 8, в
Файл "/home/repos/ges/Python/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", строка 631, в exec_module
exec (байт-код, модуль. dict )
Файл "multiprocessing / spawn.py", строка 19, в
от . утилита импорта
Файл "/home/repos/ges/Python/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", строка 631, в exec_module
exec (байт-код, модуль. dict )
Файл "multiprocessing / util.py", строка 17, в
из подпроцесса импорта _args_from_interpreter_flags
Файл "/home/repos/ges/Python/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", строка 631, в exec_module
exec (байт-код, модуль. dict )
Файл "subprocess.py", строка 136, в
Файл "/home/repos/ges/Python/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", строка 714, в load_module
module = loader.load_module (полное имя)
Ошибка ImportEr: /home/repos/ges/Python/GES_Module/dist/bp2/_posixsubprocess.so: неопределенный символ: _Py_set_inheritable_async_safe
[15670] Не удалось выполнить скрипт pyi_rth_multiprocessing
Не уверен, как решить.