2017-04-24 2 views
0

지난 주에 파이썬을 시작하여 일을 더 편하게 해주었습니다. 내 업무를 다른 사람들이 수익을 창출 할 수 있도록하기 위해 cx_freeze를 사용하여 실행 파일을 작성하기로 결정했습니다.cx_freeze - 여전히 로컬 디렉토리에서 실행 가능

많은 작은 종속성 문제를 해결 한 후에 마침내 내 .exe 파일이 올바르게 작동하는 지점에 도달했습니다 . 내가왔다 error message - missing dependencies

: 다른 사람의 컴퓨터에 .exe 파일을 실행하려고 할 때 불행하게도, 다음과 같은 오류가 나타 (내가 .exe 파일을 만들 이유입니다 파이썬을 사용하여 단 하나입니다) 내 질문에 대한 답변을 찾기 위해 인터넷 전체에서 찾고 있지만, 내 것과 같은 문제가있는 사람을 찾을 수 없습니다.

기술 정보 : 저는 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

안녕하세요! 저는 몇 주 동안 해결책을 찾고 있었고 같은 문제가있는 사람을 찾을 수 없었습니다. 판다의 전화가 멍청한 것 같습니다. 하지만 내 로컬 libs보다는 빌드 폴더를 보는 방법을 알지 못합니다. 시간 내 주셔서 감사합니다. 감사 gmignot – gmignot

+0

나는이 오래된 질문이 정말에 대한 답변을 제공하지만, 여기에 간다하지 않는 것을 알고 : 나는, (가) ".exe 파일이 로컬 디렉토리에서 찾고 계속 것 같습니다"에 이 토론 https://github.com/anthony-tuininga/cx_Freeze/issues/214를 기반으로 생각하면, cx_freeze가 보이는 것처럼 보일뿐입니다 **. 그것이 실제로 로컬 빌드에서 numpy를 찾고 있음을 의미하지만 ** 프로그램이 얼어 있던 numpy가 있었던 디렉토리를 ** 표시합니다. – Soltius

답변

0

나는 리눅스를 사용하지만 난 당신이 사용자 이름이 포함 된 환경 변수로 'gmignot'사용자를 대체해야한다는 것을 확신합니다. 리눅스에서는 HOME이고, 나는 윈도우에서 모른다. 파이썬 유형에 환경 변수를 사용하려면 os.environ['variable_name']

+0

안녕하세요! 답장을 보내 주셔서 감사합니다. 적절한 TCL 및 TK 라이브러리에 액세스하기 위해 환경 변수를 사용했습니다. 내가 틀렸다면 나를 수정하십시오 : 내 사용자 이름을 사용하면 내 .exe에 포함하려는 라이브러리에 액세스 할 수 있습니다. 빌드가 완료되면 exe 파일과 라이브러리는 "build"폴더에 포함 된 다른 libs만을 참조해야합니다. 그래서 환경 변수를 사용하는 것이 무엇입니까? 지식이 부족해서 죄송합니다 ... 감사합니다. – gmignot