3

私の実行可能スクリプトが使用しているパッケージのいくつかは、xlrd モジュールに依存しています。そこで、示されているように include オプションを使用して、セットアップ スクリプトにこのモジュールを含めようとしました。しかし、runnery.py がパッケージ モジュールを呼び出すと、library.zip ファイルに xlrd ファイルが存在するにもかかわらず、モジュールは xlrd をインポートできません。

from cx_Freeze import setup, Executable
import xlrd

buildOptions = dict(
                compressed = True,
                optimize=2,
                path=sys.path+[".\\uitls", “.\\supported”],
include_files=[“Doc"],
                includes=[“xlrd”, "win32com"],
                packages=["utils", ”supported"],
                append_script_to_exe=True,
                copy_dependent_files=True,
                 )
setup(
                name = "TestExecutable",
                version = "0.1",
                options = dict(build_exe = buildOptions),
                          executables = [Executable(
                                         script=r".\\codebase\\ runner.py",
                                         icon=".\\icon.ico",
                                         base="Win32GUI")]
                ) 

一方、runner.py で xlrd をインポートしようとすると、インポートできます。この場合、依存パッケージが xlrd をインポートできないため、何が問題なのかわかりません。不足しているオプションや間違っているオプションはありますか?

更新:依存パッケージはプロセスを生成することによって呼び出されることがわかりました。そのため、新しい環境が作成されます。この環境には xlrd モジュールがロードされておらず、それを含む library.zip を認識していません。それで、新しいプロセスをspwaningして実行したとしても、zipファイルからパッケージでxlrdモジュールを利用できるようにすることは何とか可能ですか?よろしく、

4

4 に答える 4

3

xlrdパッケージをダウンロードするときは、次の2つの選択肢があります。

  1. xlrd-0.7.1\xlrd\Pythonパスに含めます。
  2. インストールするpython xlrd-0.7.1\setup.py install

完了したら(どちらか)。インポートできることを確認します。Pythonを開き、「。」と入力しimport xlrdます。エラーが表示されない場合は、正常にインストールされていることがわかります。

于 2011-03-04T05:42:29.053 に答える
2

lib\site-packages フォルダーから xlrd フォルダーをコピーし、include_files オプションの下に含めた問題の回避策を見つけました。サブプロセスの実行可能ファイルが実行されると、パスが設定されるため、xlrd の場所が認識され、実行可能ファイルが xlrd をインポートできるようになります。

于 2011-03-16T05:18:04.103 に答える
0

xlrd モジュールが正しくインストールされていないようです。Windows pip install xlrd のコマンド プロンプトからインストールできます。これで問題が解決するはずです。Pandas を使用して拡張子 xlsx のファイルを読み取るときに、同じ問題に遭遇しました。

于 2016-12-30T22:44:21.863 に答える