Python脚本在IDE中工作,但在内置到可执行文件时却不行?

时间:2017-02-13 16:17:42

标签: python parsing pandas cx-freeze

当我在Pycharm中运行我的代码时,它解析我的Excel文件并在IDE中正确合并所有内容。但是,我使用cx_Freeze将其构建为可执行文件,它将停止工作。当我双击可执行文件时,它什么都没有。黑色控制台窗口快速闪烁。是什么赋予了。 Pycharm中没有堆栈跟踪或错误。

以下是我的参考代码:

[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'

1 个答案:

答案 0 :(得分:1)

问题是模块没有正确安装在setup.py文件中,我使用了@downshift链接我的stackoverflow回答中的this code。我还发现我的numpy安装已损坏。所以我快速卸载并重新安装了。将脚本重建为可执行文件,它完美地运行。

为了获得完整的回溯,我在命令行中导航到可执行文件并输入文件名。更快捷的方法是按住alt并右键单击包含exe的文件,然后单击打开open command window这将为您打开文件位置的cmd。运行您的程序以获取追溯