2017-04-24 34 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

相关问题