Cx_Freeze和Plotly [英] Cx_Freeze and Plotly
问题描述
我正在尝试使用cx_freeze构建一个使用plotly的应用程序的exe.
I am trying to build an exe of an application that uses plotly using cx_freeze.
我以前使用matplotlib构建了该应用程序,但已将图形切换为plotly.
I have previously built the application using matplotlib but have switched the graphing over to plotly.
我可以构建应用程序,但是当我尝试绘图时,出现以下错误.
I can build the application but when I try to plot, I get the following error.
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中包含了plotly.min.js.
I have tried including pkg_resources in the setup.py file and have also included the plotly.min.js in the PATH_to_exe\offline\plotly.min.js.
据我所知pkg_resources有问题吗?
As far as I can tell the pkg_resources has the problem?
似乎pkg_resources在library.zip文件中寻找文件,但是它包含在library.zip之外的路径中.我似乎找不到在setup.py
It seems like pkg_resources is looking for the file in the library.zip file, but it is included in the path outside of the library.zip. I can't seem to find a way to add the files to the library.zip file in the setup.py
感谢您的帮助.
推荐答案
好,我知道了.您可以将文件包含在setup.py中.首先创建要包含的文件列表,就像普通的include一样. python_dir是包含文件的python目录的路径.
Ok, I figured it out. You can include the files in the setup.py. First create the list of files to include, like in the normal includes. python_dir is the path to your python directory that contains the files.
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中的文件,并且不会像典型的外部文件那样包含它们.
This will include the files inside the library.zip and will not include them like the typical external files to include.
这篇关于Cx_Freeze和Plotly的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!