Я хочу превратить скрипт 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

Заранее спасибо!

0
Siqi Liu 9 Дек 2014 в 15:59

2 ответа

Проверьте переменную path в программе. Кажется, это не ошибка Pyside (при условии, что вы правильно установили Pyside), а то, как вы использовали переменную «путь». Глядя на ошибку, кажется, что вы использовали переменную «путь», прежде чем присваивать ей какое-либо значение.

0
vdkotian 9 Дек 2014 в 16:59

Кажется, что-то не так в вашем дистрибутиве PySide. Из трассировки видно, что проблема во второй строке вашей программы Feiwings. В этой строке, вероятно, есть оператор импорта, в котором вы что-то импортируете из PySide, верно?

Помимо проблемы с py2exe, можете ли вы нормально выполнять свой код, не вызывая той же ошибки? Если это так, я предполагаю, что вы должны включить другие зависимости пакетов (например, PySide) в свою настройку, что-то вроде:

setup(packages=['PySide'],
      console=['D:\python\Feiwings.py'])

Надеюсь, это поможет!

0
Lucas Infante 9 Дек 2014 в 16:23