0

cx_freeze を使用して plotly を使用するアプリケーションの 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 に plotly.min.js も含めました。

私が知る限り、pkg_resources に問題がありますか?

編集: pkg_resources は library.zip ファイル内のファイルを探しているようですが、library.zip の外のパスに含まれています。setup.py の library.zip ファイルにファイルを追加する方法が見つからないようです

ご協力いただきありがとうございます。

4

1 に答える 1

0

わかりました、私はそれを理解しました。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 内のファイルが含まれますが、通常の外部ファイルのようには含まれません。

于 2016-04-21T10:54:56.877 に答える