#python
#python
Вопрос:
Моя платформа — Windows 10 и Python 3.9. Существует другой компьютер (Windows server 2008R2) без Python. Поэтому я хотел бы использовать pyinstaller
на своем компьютере и использовать .exe
на другом компьютере.
Я попробовал простой скрипт print("hello")
и использовал pyinstaller -F myscript.py
.exe
работает на моем компьютере, но сбой на другом компьютере.
Ошибка
error loading python dll ~ python39.dll
Должен ли я использовать Python 3.8? Или что мне делать?
Комментарии:
1. проверьте тип операционной системы, если я хорошо помню, если он 32-битный, а ваша программа 64-битная, она не может быть открыта. Убедитесь, что вы создали 32-разрядную версию, чтобы ее можно было запускать на обоих ПК, даже если у них разные процессоры
2. оба являются 64-битными. но я проверю еще раз и попробую, спасибо.
3. дайте мне знать, если в прошлом у меня была такая же проблема 😉
4. pyinstaller — это боль. В прошлый раз, когда я пробовал, это не сработало. Я использовал cx_Freeze, и он работал отлично. Продолжайте использовать pyinstaller, если хотите, но попробуйте найти альтернативу, если что-то не получится.
5. взгляните на pyinstaller.readthedocs.io/en/stable /…
Ответ №1:
Проблема в том, что Pyinstaller не создает полностью автономные исполняемые файлы, он создает зависимости (например, это python39.dll ), так что это python39.dll должен быть на компьютере, на котором запущен этот исполняемый файл. Поскольку python уже установлен на вашем компьютере, python39.dll уже есть, и все работает нормально. Проблема в том, что на компьютере, на котором вы запускаете эту программу, вероятно, ее не будет.
Чтобы исправить это, есть несколько решений:
- Установите python 3.9 на целевой компьютер (но в этом случае вам не нужно создавать исполняемый файл)
- Включить python39.dll с вашей программой
Для второго решения просто создайте папку и переместите в нее свой исполняемый файл, а также это python39.dll библиотека. Windows найдет его, потому что он находится в том же каталоге, где находится этот исполняемый файл. Вы можете получить эту библиотеку из c:WindowsSystem32 папку (или где хранятся все DLL-файлы в вашей системе), а затем просто скопируйте ее в папку с вашим исполняемым файлом. После этого отправляйте не только исполняемый файл, но и эту папку с включенной библиотекой.
@Stepan написал в комментариях, что вы также можете включить эту библиотеку прямо в свой исполняемый файл, добавив —add-binary «pathtopython39.dll « к вашей команде при компиляции. Окончательная команда будет выглядеть следующим образом:
pyinstaller -F —add-binary «c:WindowsSystem32python39.dll » myscript.py