python - 如何使用plotly修复exe中出现的 "No such file or directory"

标签 python runtime-error plotly pyinstaller

我正在尝试编写一个使用plotly的Python软件。当我使用控制台执行该脚本时,该脚本运行良好。之后,我使用 Pyinstaller 创建了一个 exe 文件。但 exe 的执行失败并出现错误消息

FileNotFoundError: No such file or directory "Path\To\PythonScript\plotly\package_data\plotly.min.js"

以下是有关我的系统的一些信息:

  • 操作系统:Windows 10

  • Python 3.7.4

  • plotly 3.10.0

<小时/>
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, plot

xValues = [1, 2, 3]
yValues1 = [5, 5, 5]
yValues2 = [7, 6, 7]

firstTrace = go.Scatter( x = xValues, y = yValues1, mode='lines+markers', name='first' )
secondTrace = go.Scatter( x = xValues, y = yValues2, mode='lines+markers', name='second' )

plottedData = [firstTrace, secondTrace]

plot( plottedData )

我应该怎么做,才能使 exe 运行时不出现此错误?

最佳答案

通常,PyInstaller 不会处理所有模块依赖项,特别是当它们使用其他文件时。您需要手动将它们提供给最终的可执行文件。

所以对于 plotly ,它使用一个名为 package_data 的目录,其中包含模板文件、js 文件等。因此您需要使用 Tree类将其添加到您的可执行文件中。编辑生成的规范文件:

# -*- mode: python -*-

block_cipher = None


a = Analysis(
    ...
)
a.datas += Tree("<Python_Path>/Lib/site-packages/plotly/package_data/", "./plotly/package_data")
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
...

关于python - 如何使用plotly修复exe中出现的 "No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57070260/

相关文章:

python - 如何使用 Django 的 index_together 与 filter 和 order_by 一起查询?

c++ - cin 导致运行时错误

python - 在 plotly 中旋转标记

R plotly : How to connect lines on polar/radar chart?

c++ - 需要帮助来阻止程序在未经用户同意的情况下终止

javascript - 如何删除plotly.js 图表轴中的非整数?

python - 自定义 postgres 范围类型的 SQLalchemy 表示

python - 从 python 执行一个 .sh 文件,指示绝对路径

python - numpy 中的并行数组操作

android - 我正在创建一个类似Uber的应用程序,但它突然崩溃,并出现预期的BEGIN_ARRAY错误,但在第1行第1列路径$ STRING