Pyinstaller通配符导入

问题描述 投票:0回答:3

我有这段代码

from module1 import *

feature1() # from module1

我得到一个NameError例外

NameError: global name 'feature1' is not defined

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

python python-3.x pyinstaller
3个回答
0
投票
  1. 确保module1存在并已定义
  2. 确保feature1中存在feature1
  3. 确保feature1是一个函数,而不是任何其他函数(如类型或对象)
  4. 如果您使用虚拟环境,请确保该软件包已安装在那里

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


0
投票

你真的不应该使用import *它会让对象变得更加困难 - 任何许多短路都不会起作用。

尝试做:

from module1 import *
dir()

这将告诉您已导入的内容并可供使用。如果feature1不存在那么你有你的解释 - 如果它在那里你有一个更复杂的旅程在你前面。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.