2017-02-23 61 views
1

私はopenpyxlに依存するPythonアプリケーションを持っていて、Pythonインタプリタを通して実行するとうまく動作します。ただし、py2exeでexeファイルを作成するとき。 exeファイルが生成されたが、私はそれをクリックしたとき、私はエラーを取得し、次のログが生成されました:Py2Exe openpyxl importerror

Traceback (most recent call last): 
File "excelTest.py", line 1, in <module> 
File "openpyxl\__init__.pyc", line 30, in <module> 
File "openpyxl\workbook\__init__.pyc", line 5, in <module> 
File "openpyxl\workbook\workbook.pyc", line 16, in <module> 
File "openpyxl\writer\write_only.pyc", line 23, in <module> 
File "openpyxl\writer\excel.pyc", line 36, in <module> 
File "openpyxl\packaging\extended.pyc", line 4, in <module> 
ImportError: cannot import name __version__ 

誰も私は問題が何であるか、私はそれを修正する方法を知っているようでした。

from distutils.core import setup 
import py2exe, sys, os 
sys.argv.append('py2exe') 
setup(windows=['excelTest.py'], options={"py2exe": {"includes": ["openpyxl","os","ntpath","Tkinter","tkFileDialog","sys"]}}) 
+0

openpyxl私はpy2exeとopenpyxlでの作業の実行ファイルを生成する別のマシン上のpy2exe –

+0

@CharlieClarkをサポートしていません。どのように可能ですか? – user7331766

答えて

1

'openpyxl == 2.3.5をインストールPIP' 私が持っていました同じ問題。

まず、私は2.3へのダウングレードの提案されたソリューションを試しましたが、動作しなかった読み取り専用機能を使用します。

次に、いくつかのopenpyxlフォーラムを読んで、2.4がJasonファイルを設定に使用しているということがわかりました。しかし、私はそれを含めるためにpy2exeに指示することはできませんでした。

最後に、私はpyInstallerを使用し、最初の試行で働いていました。

2

私はopenpyxl 2.4.3を使用して同じ問題を抱えていた: はここに私のsetup.pyです。 .exeファイルを作成するには、古いバージョンのopenpyxlに戻す必要があります。そうするために:

  1. コマンドプロンプトを開き、古いバージョンを使用してopenpyxl 'ピップアンインストールopenpyxl'
  2. 再インストールしてopenpyxlアンインストールが
5

問題は、__version__が.constants.jsonファイルから読み込まれ、py2exeによって取り上げられていないためです。周りの仕事のために、私は、インポートをコメントし、ライブラリファイルopenpyxl \包装の\ extended.py

#from openpyxl import __version__ 
__version__ = "2.4.5" 

を編集しopenpyxlライブラリで.constants.jsonファイル存在からバージョンテキストに変数__version__を作成しました。もう一度py2exeを使用して実行可能ファイルを作成しました。

私のためにうまく働いた。 openpyxlの\パッケージで

+0

私のために働いた。 – Rodrigo

-1

\ extended.pyライン5でそれを追加します。

__version__ = str(__version__)