Cx_Freeze 和剧情
Cx_Freeze and Plotly
我正在尝试构建一个使用 cx_freeze 的应用程序的 exe。
我之前使用 matplotlib 构建了应用程序,但已将绘图切换为 plotly。
我可以构建应用程序,但是当我尝试绘图时,出现以下错误。
url = py.plot(fig, filename='pandas-box-plot')
File "C:\Python34\lib\site-packages\plotly\offline\offline.py", line 284, in p
lot
get_plotlyjs(),
File "C:\Python34\lib\site-packages\plotly\offline\offline.py", line 48, in ge
t_plotlyjs
plotlyjs = resource_string('plotly', path).decode('utf-8')
File "C:\Python34\lib\site-packages\pkg_resources\__init__.py", line 1184, in
resource_string
self, resource_name
File "C:\Python34\lib\site-packages\pkg_resources\__init__.py", line 1457, in
get_resource_string
return self._get(self._fn(self.module_path, resource_name))
File "C:\Python34\lib\site-packages\pkg_resources\__init__.py", line 1535, in
_get
return self.loader.get_data(path)
OSError: [Errno 0] Error: 'plotly\offline\plotly.min.js'
我已尝试在 setup.py 文件中包含 pkg_resources,并且还在 PATH_to_exe\offline\plotly.min.js.[=12= 中包含 plotly.min.js ]
据我所知 pkg_resources 有问题吗?
编辑:似乎 pkg_resources 正在 library.zip 文件中查找文件,但它包含在 library.zip 之外的路径中。我似乎找不到将文件添加到 setup.py
中的 library.zip 文件的方法
感谢您的帮助。
好的,我明白了。您可以将文件包含在 setup.py 中。首先创建要包含的文件列表,就像在正常包含中一样。 python_dir 是包含文件的 python 目录的路径。
zip_includes = [('%s\Lib\site-packages\plotly\offline\plotly.min.js' % str(python_dir), 'plotly\offline\plotly.min.js'),
('%s\Lib\site-packages\plotly\widgets\graphWidget.js' % str(python_dir), 'plotly\widgets\graphWidget.js'),
('%s\Lib\site-packages\plotly\graph_reference\default-schema.json' % str(python_dir), 'plotly\graph_reference\default-schema.json')]
然后在您的设置中:
setup(name="Orion",
version="1,
author="Jonathan",
description="Metering analysis tool",
options={'build_exe': {'excludes': excludes, 'packages': packages, 'include_files': include_files, 'build_exe': "%s/build" % BASE_PATH, 'zip_includes': zip_includes}},
executables=[compileTarget]
)
这将包含 library.zip 中的文件,并且不会像要包含的典型外部文件那样包含它们。
我正在尝试构建一个使用 cx_freeze 的应用程序的 exe。
我之前使用 matplotlib 构建了应用程序,但已将绘图切换为 plotly。
我可以构建应用程序,但是当我尝试绘图时,出现以下错误。
url = py.plot(fig, filename='pandas-box-plot')
File "C:\Python34\lib\site-packages\plotly\offline\offline.py", line 284, in p
lot
get_plotlyjs(),
File "C:\Python34\lib\site-packages\plotly\offline\offline.py", line 48, in ge
t_plotlyjs
plotlyjs = resource_string('plotly', path).decode('utf-8')
File "C:\Python34\lib\site-packages\pkg_resources\__init__.py", line 1184, in
resource_string
self, resource_name
File "C:\Python34\lib\site-packages\pkg_resources\__init__.py", line 1457, in
get_resource_string
return self._get(self._fn(self.module_path, resource_name))
File "C:\Python34\lib\site-packages\pkg_resources\__init__.py", line 1535, in
_get
return self.loader.get_data(path)
OSError: [Errno 0] Error: 'plotly\offline\plotly.min.js'
我已尝试在 setup.py 文件中包含 pkg_resources,并且还在 PATH_to_exe\offline\plotly.min.js.[=12= 中包含 plotly.min.js ]
据我所知 pkg_resources 有问题吗?
编辑:似乎 pkg_resources 正在 library.zip 文件中查找文件,但它包含在 library.zip 之外的路径中。我似乎找不到将文件添加到 setup.py
中的 library.zip 文件的方法感谢您的帮助。
好的,我明白了。您可以将文件包含在 setup.py 中。首先创建要包含的文件列表,就像在正常包含中一样。 python_dir 是包含文件的 python 目录的路径。
zip_includes = [('%s\Lib\site-packages\plotly\offline\plotly.min.js' % str(python_dir), 'plotly\offline\plotly.min.js'),
('%s\Lib\site-packages\plotly\widgets\graphWidget.js' % str(python_dir), 'plotly\widgets\graphWidget.js'),
('%s\Lib\site-packages\plotly\graph_reference\default-schema.json' % str(python_dir), 'plotly\graph_reference\default-schema.json')]
然后在您的设置中:
setup(name="Orion",
version="1,
author="Jonathan",
description="Metering analysis tool",
options={'build_exe': {'excludes': excludes, 'packages': packages, 'include_files': include_files, 'build_exe': "%s/build" % BASE_PATH, 'zip_includes': zip_includes}},
executables=[compileTarget]
)
这将包含 library.zip 中的文件,并且不会像要包含的典型外部文件那样包含它们。