2017-02-13 51 views
-1

當我在Pycharm中運行我的代碼時,它會解析我的Excel文件並在IDE中正確合併所有內容。但是,我使用cx_Freeze將其構建爲可執行文件,它停止工作。當我雙擊可執行文件時,它什麼都沒有。黑色控制檯窗口快速閃爍。是什麼賦予了。 Pycharm中沒有堆棧跟蹤或錯誤。Python腳本在IDE中工作,但在內置到可執行文件時不能運行?

這裏是我的參考代碼:

[In:] 

import numpy as np 
import pandas as pd 

#finds the path to a users pc. 
userHome = os.path.expanduser('~') 
directory = userHome + '/Desktop/Parsing Script/ParsingScriptOutputFile/' 
workerList= (directory+'employeeList.csv') 
managerList = (userHome+'/Parsing Script/ParsingScriptOutputFile/managerList.XLSX') 

# specify 32 columns, no headers 
employee = pd.read_csv(workerList, usecols=range(32), header=None, sep=",",engine='python') # read in the data 
original_rows = employee.shape[0] # original number of rows 
managers = pd.read_excel(managerList) 
managers= managers[['Cost Center','Profit Center','User ID', 'Description','Email address','Person Responsible']] 

# Left join so that the rows that do not match are not dropped from employee 
# data 
merged_df = pd.merge(employee, managers, on='key', how='left') 

# Number of rows should be unchanged 
# This should print out True 
print(merged_df.shape[0] == original_rows) 
#File called merged_data.csv returned to ParsingScriptOutputFile 
return merged_df.to_csv(directory+'merged_data.csv', index=False, encoding='utf-8') # Save  

@ sideffect0(感謝您的意見) 全部追溯

Traceback (most recent call last): 
    File "C:\Python\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 12, in <module> 

    __import__(name + "__init__") 
    File "C:\Python\lib\site-packages\cx_Freeze\initscripts\Console.py", line  24, in <module> 
    exec(code, m.__dict__) 
    File "csvProject1.py", line 3, in <module> 
    File "C:\Python\lib\site-packages\numpy\__init__.py", line 142, in <module> 
from . import add_newdocs 
    File "C:\Python\lib\site-packages\numpy\add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "C:\Python\lib\site-packages\numpy\lib\__init__.py", line 8, in <module> 
from .type_check import * 
    File "C:\Python\lib\site-packages\numpy\lib\type_check.py", line 11, in <module> 
    import numpy.core.numeric as _nx 
    File "C:\Python\lib\site-packages\numpy\core\__init__.py", line 36, in <module> 
    from . import numeric 
    File "C:\Python\lib\site-packages\numpy\core\numeric.py", line 1842, in <module> 
    from .arrayprint import array2string, get_printoptions, set_printoptions 
    File "C:\Python\lib\site-packages\numpy\core\arrayprint.py", line 24, in <module> 
from .fromnumeric import ravel 
    File "C:\Python\lib\site-packages\numpy\core\fromnumeric.py", line 15, in <module> 
    from . import _methods 
ImportError: cannot import name '_methods' 
+0

文件路徑是否相同?問,因爲你可能試圖在另一臺機器上的exe文件? – WhatsThePoint

+0

如果從命令行運行'exe',會發生什麼情況? – asongtoruin

+2

我想你是在windows下打開命令提示符(Win + R - > cmd), 從那裏運行程序,你會得到traceback的細節,然後在這個問題上追加追蹤 –

回答

1

問題是一個模塊沒有正確安裝在setup.py文件我從這個@overnshift鏈接我的這個stackoverflow答案中使用this code。此外,我發現我有一個損壞的numpy安裝。所以我做了一個快速卸載並重新安裝。將腳本重建爲可執行文件,並且完美運行。

要獲得完整的回溯,我導航到命令行中的可執行文件並鍵入文件名。更快的方法是按住alt並右鍵單擊包含exe文件的文件,然後單擊打開open command window這將在文件位置爲您打開cmd。運行你的程序以獲得回溯

相關問題