Pyinstaller:创建具有多个依赖项的可执行文件 - "TypeError"
Pyinstaller: Creating an Executable with Several Dependencies - "TypeError"
我构建了一个相当大的 wx 应用程序,想将其编译成可执行文件。我以前做过这个,但是,这个过程变得更加复杂,因为我正在处理其他几个依赖项(包)并且我的程序由多个 .py 文件组成。在我 post 代码之前,我将描述初始错误消息。
错误信息
我导航到保存所有脚本文件的目录,并在提示符 (cmd) 中执行以下命令 window:
pyinstaller -F AMI_GUI.py
Pyinstaller 最初 运行 没问题但是在过程结束时我得到这个错误:
TypeError: iteration over non-sequence
我已经 post 截屏以更好地显示此错误。
有趣的是接下来会发生什么,我再次尝试 运行ning 相同的命令,'pyinstaller -F AMI_GUI.py'。但是这次错误没有发生,而是过程完成了,并且在我的 dist 目录中创建了我的可执行文件。我也能够 运行 可执行文件。
有人 运行 在使用 pyinstaller 编译应用程序时遇到过这个问题吗?我还没有对可执行文件进行广泛的测试,但我担心信任它,因为 pyinstaller 进程第一次失败。
我已经 post 编辑了显示依赖关系的部分代码和一些代码:
AMI_GUI.py
from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, UnicodeText, VARCHAR, NVARCHAR, TEXT, DATE, distinct, ForeignKey, Table,or_,and_
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
import math
import wx
import wx.lib.mixins.listctrl as listmix
from ObjectListView import ObjectListView, ColumnDefn
from ObjectListView import EVT_CELL_EDIT_STARTING
from ObjectListView import EVT_CELL_EDIT_FINISHING
import os
import time
from wigets import File_Manager,Date_Filter,Log_In,EVT_LOGIN
from AMI_component import engine
from AMI_component import Exception,Meter,Transformer,except_heading,meter_heading
import csv
## Link to Database
Session = sessionmaker( bind=engine ) ## Import the database engine from component file
session = Session() ## Create session to database
AMI_components.py
import os,math,random,string,operator,logging,csv
from itertools import count
from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, UnicodeText, VARCHAR, NVARCHAR, TEXT, DATE, distinct, ForeignKey, Table
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
from AMI_subroutine import getFiles,incident_filt,getDB,get_manf,dayMonth,check_voltage,violation_filt,rec,get_dateTime
admin_dir = "C:\project\AMI"
# print os.getcwd()
os.chdir(admin_dir)
engine = create_engine("sqlite:///./AMI_case.db", #"oracle://rai:raisys@njnwkora18_oraa.db.pseg.com",
echo=False)
Session = sessionmaker( bind=engine )
session = Session()
不确定这段代码是否有帮助,但它确实显示了我使用了哪些导入语句...我是 运行 的一些主要文件,pyinstall 命令是 AMI_GUI.py .
用谷歌搜索了一下,它看起来确实像一个 pyinstaller 错误。
参见:
https://groups.google.com/forum/#!topic/pyinstaller/lDCzhTS4Apo
我构建了一个相当大的 wx 应用程序,想将其编译成可执行文件。我以前做过这个,但是,这个过程变得更加复杂,因为我正在处理其他几个依赖项(包)并且我的程序由多个 .py 文件组成。在我 post 代码之前,我将描述初始错误消息。
错误信息
我导航到保存所有脚本文件的目录,并在提示符 (cmd) 中执行以下命令 window:
pyinstaller -F AMI_GUI.py
Pyinstaller 最初 运行 没问题但是在过程结束时我得到这个错误:
TypeError: iteration over non-sequence
我已经 post 截屏以更好地显示此错误。
有趣的是接下来会发生什么,我再次尝试 运行ning 相同的命令,'pyinstaller -F AMI_GUI.py'。但是这次错误没有发生,而是过程完成了,并且在我的 dist 目录中创建了我的可执行文件。我也能够 运行 可执行文件。
有人 运行 在使用 pyinstaller 编译应用程序时遇到过这个问题吗?我还没有对可执行文件进行广泛的测试,但我担心信任它,因为 pyinstaller 进程第一次失败。
我已经 post 编辑了显示依赖关系的部分代码和一些代码:
AMI_GUI.py
from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, UnicodeText, VARCHAR, NVARCHAR, TEXT, DATE, distinct, ForeignKey, Table,or_,and_
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
import math
import wx
import wx.lib.mixins.listctrl as listmix
from ObjectListView import ObjectListView, ColumnDefn
from ObjectListView import EVT_CELL_EDIT_STARTING
from ObjectListView import EVT_CELL_EDIT_FINISHING
import os
import time
from wigets import File_Manager,Date_Filter,Log_In,EVT_LOGIN
from AMI_component import engine
from AMI_component import Exception,Meter,Transformer,except_heading,meter_heading
import csv
## Link to Database
Session = sessionmaker( bind=engine ) ## Import the database engine from component file
session = Session() ## Create session to database
AMI_components.py
import os,math,random,string,operator,logging,csv
from itertools import count
from sqlalchemy import create_engine, Column, Integer, String, DateTime, Float, UnicodeText, VARCHAR, NVARCHAR, TEXT, DATE, distinct, ForeignKey, Table
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
from AMI_subroutine import getFiles,incident_filt,getDB,get_manf,dayMonth,check_voltage,violation_filt,rec,get_dateTime
admin_dir = "C:\project\AMI"
# print os.getcwd()
os.chdir(admin_dir)
engine = create_engine("sqlite:///./AMI_case.db", #"oracle://rai:raisys@njnwkora18_oraa.db.pseg.com",
echo=False)
Session = sessionmaker( bind=engine )
session = Session()
不确定这段代码是否有帮助,但它确实显示了我使用了哪些导入语句...我是 运行 的一些主要文件,pyinstall 命令是 AMI_GUI.py .
用谷歌搜索了一下,它看起来确实像一个 pyinstaller 错误。
参见: https://groups.google.com/forum/#!topic/pyinstaller/lDCzhTS4Apo