Python PyInstaller不包括导入
我对PyInstaller(包括任何导入的自定义模块)有问题。 我有一个main.py调用一个方法Python PyInstaller不包括导入,python,pyinstaller,Python,Pyinstaller,我对PyInstaller(包括任何导入的自定义模块)有问题。 我有一个main.py调用一个方法 from Printer.function import Repeat def main(): name = input("Your Name: ") Repeat(3,name) input("Press enter to exit") main() 通过VS代码,一切正常 但是,使用pyInstaller,当我运行exe文件时,它会抛出一个错误,即找不到模块“
from Printer.function import Repeat
def main():
name = input("Your Name: ")
Repeat(3,name)
input("Press enter to exit")
main()
通过VS代码,一切正常
但是,使用pyInstaller,当我运行exe文件时,它会抛出一个错误,即找不到模块“function”。
我正在运行这个命令
pyinstaller.exe -p K:\HelloWorldEXE\Printer K:\HelloWorldEXE\main.py --onefile
有人能解释一下吗?我不知道如何使用隐藏的导入或挂钩使其工作
谢谢。两种可能的解决方案
1.
正如@legoroj所提到的,试着从脚本所在的目录运行它,例如
K:\HelloWorldEXE> pyinstaller main.py --onefile
2.
默认情况下,python只搜索当前目录。因此,如果需要,还可以附加一点路径
在脚本中,设置程序包的路径:
import sys
sys.path.append('C:\PathTo\project\package1')
import module1
这应该可以解决您遇到的问题。从脚本所在的目录运行它-
K:\HelloWorldEXE>pyinstaller main.py--onefile
请查看我的解决方案,并告诉我是否存在任何问题。感谢@legoroj的回答。它起作用了!如果问题解决了,请随意接受或发布答案。正如您所猜测的,诀窍是蟒蛇。我不会在您想要编译的脚本中编辑pythonpath,它会影响输出。相反,为PyInstaller指定-p/--path
选项。这将在PyInstaller搜索导入时向pythonpath添加指定的路径。(该选项可多次使用)。请注意,从脚本所在的目录运行,因为它将该路径(工作目录)添加到pythonpath。