Я хочу превратить скрипт python в исполняемый файл Windows с помощью py2exe. Я не пропустил MSVCP90.dll и Feiwings.py(файл, который я использую для преобразования) и setup.py находятся по одному и тому же пути. Выполняя эти действия в командном окне, все работает нормально, вот последние строки трассировки:
**binary dependencies****
your executable(s) also depend on these dlls which are not included. You may or may not need to distribute them.
Make sure you have the license if you distribute any of them, and make sure you don't distribute files belonging to the operating system.
USER32.dll -C:\WINDOWS\system32\USER32.dll
SHELL32.dll -C:\WINDOWS\system32\SHELL32.dll
ADVAPI32.dll -C:\WINDOWS\system32\ADVAPI32.dll
WS2_32.dll -C:\WINDOWS\system32\WS2_32.dll
GDI32.dll -C:\WINDOWS\system32\GDI32.dll
KERNEL32.dll -C:\WINDOWS\system32\KERNEL32.dll
В setup.py есть такое содержимое:
from distutils.core import setup
import py2exe
setup(console=['D:\python\Feiwings.py'])
Когда я указал путь к каталогу dist, он получил ошибку.
Traceback (most recent call last):
File "Feiwings.py", line 2, in <module>
File "PySide\__init__.pyc", line 45, in <module>
File "PySide\__init__.pyc", line 43, in _setupQtDirectories
UnboundLocalError: local variable 'path' referenced before assignment
Заранее спасибо!
2 ответа
Проверьте переменную path в программе. Кажется, это не ошибка Pyside (при условии, что вы правильно установили Pyside), а то, как вы использовали переменную «путь». Глядя на ошибку, кажется, что вы использовали переменную «путь», прежде чем присваивать ей какое-либо значение.
Кажется, что-то не так в вашем дистрибутиве PySide. Из трассировки видно, что проблема во второй строке вашей программы Feiwings. В этой строке, вероятно, есть оператор импорта, в котором вы что-то импортируете из PySide, верно?
Помимо проблемы с py2exe, можете ли вы нормально выполнять свой код, не вызывая той же ошибки? Если это так, я предполагаю, что вы должны включить другие зависимости пакетов (например, PySide) в свою настройку, что-то вроде:
setup(packages=['PySide'],
console=['D:\python\Feiwings.py'])
Надеюсь, это поможет!
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.