2017-04-24 38 views
0

上週我啓動了Python,目的是讓我的工作更輕鬆。 爲了讓我的工作對辦公室的其他人有利,我決定使用cx_freeze創建一個可執行文件。cx_freeze - 可執行文件仍然在本地目錄中查看

排除了很多小的依賴性問題等後,我終於到了我的.exe文件正常工作的地步在我的電腦。 不幸的是,試圖發起別人的計算機上的.exe文件時(我使用Python的只有一個,這就是爲什麼我生成.exe文件的原因)以下時出現的錯誤: error message - missing dependencies

我一直看遍各地的互聯網找到我的問題的答案,但我找不到與我的問題相同的任何人。

技術信息: 我使用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文件不斷在本地目錄中尋找numpy(當熊貓需要時)。但我有我的生成文件夾中的numpy文件夾...

你知道這個問題可能來自哪裏嗎? 任何幫助將不勝感激:)。

非常感謝和問候,

gmignot

+0

嗨,大家好! 我一直在尋找一個解決方案,現在幾個星期,我一直沒能找到任何人有同樣的問題。 它看起來像來自熊貓呼籲numpy。但我不知道如何告訴它查看生成文件夾,而不是在我的本地庫。 非常感謝您的時間。 Regards, 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文件和庫應該只引用包含在「構建」文件夾中的其他庫。 那麼使用環境變量有什麼意義? 對於缺乏知識感到抱歉... 關心, – gmignot

相關問題