Pyinstaller“FileNotFoundError:[Errno 2]运行应用程序时没有此类文件或目录:”

2024-10-03 02:35:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近使用pyinstaller --onefile命令打包了一个python应用程序。它成功地生成了一个启动良好的可执行文件。我几乎可以毫无问题地使用脚本中的所有函数,除了一个。当我调用另一个python文件(在我的应用程序文件夹中)的函数时,会出现以下错误:

Traceback (most recent call last):
  File "socketserver.py", line 647, in process_request_thread
  File "socketserver.py", line 357, in finish_request
  File "socketserver.py", line 717, in __init__
  File "http/server.py", line 426, in handle
  File "http/server.py", line 414, in handle_one_request
  File "CaptchaHarvester/harvester/server/__init__.py", line 134, in do_GET
  File "CaptchaHarvester/harvester/server/__init__.py", line 178, in handel_request
  File "CaptchaHarvester/harvester/server/__init__.py", line 85, in _load_template
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/rl/rmr5s0ld22j0h_z15m90v0c80000gr/T/_MEIBVnHEv/harvester/server/templates/ga.chunk.html'
----------------------------------------
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 54955)
Traceback (most recent call last):
  File "socketserver.py", line 647, in process_request_thread
  File "socketserver.py", line 357, in finish_request
  File "socketserver.py", line 717, in __init__
  File "http/server.py", line 426, in handle
  File "http/server.py", line 414, in handle_one_request
  File "CaptchaHarvester/harvester/server/__init__.py", line 122, in do_GET
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/rl/rmr5s0ld22j0h_z15m90v0c80000gr/T/_MEIBVnHEv/harvester/server/icon.png'

问题似乎是pyinstaller无法正确找到文件(icon.png和ga.hunk.html)。这些文件位于与我的main.py文件位于同一文件夹中的文件夹中。我想知道如何让pyinstaller成功地找到这些文件?我曾尝试将其添加到.spec文件中的datas类中,但仍然出现错误。这就是那行的样子:datas=[('/Users/A/Desktop/ss/CaptchaHarvester/harvester/server/icon.png','/Users/A/Desktop/ss/CaptchaHarvester/harvester/server')], 请让我知道,如果我做错了什么,或者如果你有任何想法如何解决它

如果有帮助的话,我正在使用macosx catalina和python 3.7

谢谢


Tags: 文件inpy文件夹httpserverinitrequest
1条回答
网友
1楼 · 发布于 2024-10-03 02:35:58

您可以在命令提示符中使用参数,以确保pyinstaller找到正确的文件 add-data "path_to_file:path_in_executable in directory"一个例子是

pyinstaller  add-data "icon.png;."  onefile socketserver.py

此处icon.png位于socketserver.py的同一目录中,并被复制到可执行文件的根目录中(.表示根目录)

相关问题 更多 >