2017-08-11 28 views
0

我試圖從python使用cx_Freeze建立一個簡單的可執行文件,但腳本使用請求模塊。正如許多其他線程所說,它似乎是一個涉及cx_freeze和requests模塊的問題,關於請求需要運行的文件的路徑以及cx_freeze在凍結時更改或不導入的問題。命令promp立即關閉cx_Freeze和請求模塊

構建過程工作得很好,但是當exe被創建時,如果我嘗試打開它,一個命令promp會顯示一秒鐘的一小部分,然後關閉,顯示某事如此之快以至於我沒有時間閱讀甚至快照,但它沒有錯誤消息的結構。

我認爲問題可能是關於路徑的問題,但我不知道如何解決它,而我在互聯網上找到的所有東西都不適合我。

請幫忙。

這裏被命名爲「prueba2.py」

import requests 
print("hi") 
print(requests) 
input() 

和setup.py

from cx_Freeze import setup, Executable 
import sys 
import os 
import requests.certs 
base = None 
executables = [Executable("prueba2.py", base=base)] 
packages = ["idna"] 
options = { 
    'build_exe': { 
     'packages': packages, 
     'include_files': [os.path.join(sys.base_prefix, 'DLLs','sqlite3.dll'), 
     (requests.certs.where(), 'cacert.pem')] 
    }, 
} 
setup(
    name="<any name>", 
    options=options, 
    requires=["requests"], 
    version="<any number>", 
    description='<any description>', 
    executables=executables 
) 

回答

0

測試文件的一個副本,似乎有一些依賴於新版本cx_freeze模塊

請嘗試修改主文件,如下所示:

import requests 
from multiprocessing import Queue 
print("hi") 
print(requests) 
input() 

and setup.py as:

from cx_Freeze import setup, Executable 
import sys 
import os 
import requests.certs 
base = None 
executables = [Executable("prueba2.py", base=base)] 
packages = ["idna"] 
options = { 
    'build_exe': { 
     'packages': packages, 
     'include_files': [os.path.join(sys.base_prefix, 'DLLs', 'sqlite3.dll'), 
          (requests.certs.where(), 'cacert.pem')] 
    }, 
} 
setup(
    name="name", 
    options=options, 
    requires=["requests"], 
    version="1", 
    description='test', 
    executables=executables 
)