2017-04-24 10 views
0

先週私はPythonを使い始めました。 私の仕事を他の人に還元するために、私はcx_freezeを使って実行可能ファイルを作成することにしました。cx_freeze - ローカルディレクトリを探しても実行可能

多くの小さな依存関係の問題などをトラブルシューティングした後、最終的に私の.exeファイルが正常に動作するようになった私のコンピュータ。私がされている error message - missing dependencies

:他人のコンピュータ上で.exeファイルを起動しようとすると 残念ながら、次のエラーが表示された(私は.exeファイルを構築する理由でもあるのpythonを使って一つだけ、午前)私の質問に対する答えを見つけるためにインターネット上を見ていたが、私と同じ問題を抱えている人は見つけられなかった。

技術情報: 私はWin10、python3.6、およびcx_freeze 5.0.1を使用しています!

私のコードは非常に基本的なもので、データをプロットするだけでpngファイルが出力されます。ここに私のセットアップの下:

import sys 
import os 
import matplotlib 
import scipy 
from cx_Freeze import setup, Executable 
from multiprocessing.context import Process 

os.environ['TCL_LIBRARY'] = r'C:\Users\gmignot\AppData\Local\Continuum\Anaconda3\tcl\tcl8.6' 
os.environ['TK_LIBRARY'] = r'C:\Users\gmignot\AppData\Local\Continuum\Anaconda3\tcl\tk8.6' 

includefiles = ['ColoredMapInput.csv',r"C:\Users\gmignot\AppData\Local\Continuum\Anaconda3\DLLs\tcl86t.dll",r"C:\Users\gmignot\AppData\Local\Continuum\Anaconda3\DLLs\tk86t.dll", os.path.dirname(scipy.__file__)] 

setup(
    name = Test1", 
    version = "0.1", 
    description = "First attempt to python", 
    options = {'build_exe': {'include_files':includefiles,"packages": ['numpy','pandas','numpy.lib.format'],'include_msvcr': True,"includes":['matplotlib.backends.backend_tkagg','tkinter','multiprocessing']}}, 
    executables = [Executable("first_attempt.py",base = "Win32GUI")]) 

.exeファイルは、(Pandasが必要なときに)ローカルディレクトリでnumpyを探し続けるようです。しかし、私はビルドフォルダにnumpyのフォルダを持っています...

この問題の原因はどこですか? 何かの助けが大いに感謝されるでしょう:)。

どうもありがとうとよろしく、

gmignot

+0

こんにちは! 私は数週間は解決策を探しており、同じ問題を抱えている人を見つけることができませんでした。 パンダがnumpyに電話したようです。しかし、ビルドフォルダをローカルlibsで見るのではなく、どのように表示するかは分かりません。 ありがとうございました。 よろしく、 gmignot – gmignot

+0

これは古い質問ですが、実際にはこれには答えられませんが、ここにはあります。「.exeファイルがローカルディレクトリを探しているように見えます。このディスカッションhttps://github.com/anthony-tuininga/cx_Freeze/issues/214に基づいて考えると、cx_freezeが見ているように見えるだけです。実際にはローカルビルドではnumpyを探していますが、プログラムがフリーズされたときのnumpyのディレクトリが**表示されます。 – Soltius

答えて

0

は、私は、Linuxを使用しますが、私はあなたが自分のユーザー名が含まれている的環境変数に「gmignot」ユーザに置き換える必要があることを確信しています。 linuxはHOMEですが、私はWindowsでは知りません。 Pythonで環境変数を使用するにはos.environ['variable_name']

+0

こんにちは! お返事ありがとうございました。 私は適切なTCLとTKライブラリにアクセスするために環境変数を使用しました。 私が間違っていると私を訂正してください:私のユーザ名を使用すると、自分の.exeに含めるライブラリにアクセスできます。ビルドが完了すると、exeファイルとライブラリは "build"フォルダに含まれる他のlibsのみを参照すべきです。 環境変数を使用するポイントは何ですか? 知識の不足のため申し訳ありません... よろしく、 – gmignot

関連する問題