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

Python脚本在IDE中工作,但在内置到可执行文件中时不工作?,python,parsing,pandas,cx-freeze,Python,Parsing,Pandas,Cx Freeze,当我在Pycharm中运行代码时,它会解析我的Excel文件,并将所有内容正确地合并到IDE中。但是,我将它构建到一个可执行文件中,使用它会停止工作。当我双击可执行文件时,它什么都没有。黑色控制台窗口快速闪烁。给你什么。Pycharm中没有堆栈跟踪或错误 以下是我的代码供参考: [In:] import numpy as np import pandas as pd #finds the path to a users pc. userHome = os.path.expanduser('

当我在Pycharm中运行代码时,它会解析我的Excel文件,并将所有内容正确地合并到IDE中。但是,我将它构建到一个可执行文件中,使用它会停止工作。当我双击可执行文件时,它什么都没有。黑色控制台窗口快速闪烁。给你什么。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    
@SideEffect0(感谢您的建议) 完全回溯

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'
回溯(最近一次呼叫最后一次):
文件“C:\Python\lib\site packages\cx\u Freeze\initscripts\\uuuuu startup\uuuu.py”,第12行,在
__导入(名称+“\uuuuu初始化”)
文件“C:\Python\lib\site packages\cx\u Freeze\initscripts\Console.py”,第24行,在
执行官(代码、指令)
文件“csvProject1.py”,第3行,在
文件“C:\Python\lib\site packages\numpy\\uuuu init\uuuuu.py”,第142行,在
从…起导入添加新文档
文件“C:\Python\lib\site packages\numpy\add\u newdocs.py”,第13行,在
从numpy.lib导入添加新文档
文件“C:\Python\lib\site packages\numpy\lib\\uuuuu init\uuuuuu.py”,第8行,在
from.type\u检查导入*
文件“C:\Python\lib\site packages\numpy\lib\type\u check.py”,第11行,在
将numpy.core.numeric作为_nx导入
文件“C:\Python\lib\site packages\numpy\core\\uuuu init\uuuu.py”,第36行,在
从…起输入数字
文件“C:\Python\lib\site packages\numpy\core\numeric.py”,第1842行,在
从.arrayprint导入array2string,获取\u打印选项,设置\u打印选项
文件“C:\Python\lib\site packages\numpy\core\arrayprint.py”,第24行,在
from.fromnumeric导入ravel
文件“C:\Python\lib\site packages\numpy\core\fromneric.py”,第15行,在
从…起导入方法
ImportError:无法导入名称“\u方法”

问题在于,在@downshift链接到我的stackoverflow答案中使用的setup.py文件中,模块安装不正确。我还发现我有一个损坏的numpy安装。所以我快速卸载并重新安装了它。将脚本重新构建为可执行文件,它工作得非常好


为了获得完整的回溯,我在命令行中导航到可执行文件并键入文件名。执行此操作的更快方法是按住
alt
并右键单击包含exe的文件,然后单击“打开
打开命令窗口”
这将在文件位置为您打开cmd。在那里运行程序以获取回溯

文件路径是否相同?询问,因为您可能正在另一台机器上尝试执行
exe
?如果您从命令行运行
exe
,会发生什么情况?我想您在windows中,打开命令提示符(Win+R->cmd),从那里运行程序,您将获得详细的回溯,然后在该问题中添加回溯文件路径相同,@asongtoruin同样的事情,是的,这是一个更大的解析脚本的方法部分。但是,我从较大的脚本中删除了这个方法,脚本的其余部分运行良好。我尝试使用cx\u Freeze仅构建此代码,但它无法工作。而且它在pycharm中仍然有效。@sideeffect0谢谢你的提示。