Pyinstaller通配符导入

时间:2019-03-06 05:08:05

标签: python python-3.x pyinstaller

我有这段代码

from module1 import *

feature1() # from module1

我收到一个NameError异常

NameError: global name 'feature1' is not defined

它在python main.py中完美地工作,但是当我使用pyinstaller进行编译时,我的可执行文件会抛出NameError异常。我将如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

  1. 确保module1存在并定义

  2. 确保feature1在模块1中存在

  3. 确保feature1是一个函数,而不是其他任何东西(如类型或对象)

  4. 如果您使用虚拟环境,请确保该软件包已安装在此处,并且

4a。确保从虚拟环境中运行脚本

答案 1 :(得分:0)

您真的不应该使用import *,这将使确定对象的来源变得更加困难-任何很多短毛绒都无法使用。

尝试做:

from module1 import *
dir()

这将告诉您什么已导入并可以使用。如果feature1不存在,那么您有解释-如果存在,您将面临更复杂的旅程。

答案 2 :(得分:0)

在使用pyinstaller编译脚本时,请使用命令pyinstaller -p /Path/To/Your/Module1/Folder main.py

这会将包含脚本的目录添加到PATH变量,并将module1.py添加到已编译的exe。