【问题标题】:.py file not running properly in py.exe, works in eclipse.py 文件在 py.exe 中无法正常运行,在 eclipse 中有效
【发布时间】:2019-06-26 13:43:30
【问题描述】:

您好,我有一个简单的 python 脚本,它使用 odbc 驱动程序连接到数据库,获取数据帧并存储/覆盖 Excel 文件。当我使用 eclipse 运行脚本时,它工作得很好。但是,当我通过右键单击 .py 文件并使用 py.exe 打开来运行它时,excel 文件不会被覆盖/保存。

最终,我希望其他用户能够安装 python,只需双击 .py 脚本即可更新 excel 文件。有谁知道为什么它不能使用右键单击方法?当我检查时,他们应该都使用相同的解释器。

import pyodbc
import pandas as pd



cnxn = pyodbc.connect('Driver={ODBC Driver (x64)};'
                       'DSN=MyDSN;'
                       'Server=ServerAddress;'
                       'Database=Stuff;')

t1 = "table1"


sql = ("select * " + "from " + t1)


writer = pd.ExcelWriter("MyExcelFile.xlsx")
dframe = pd.read_sql(sql,cnxn)
aggDf = dframe.groupby(['DEPARTMENT']).sum()
dframe.to_excel(writer,"RawSalesData", index = False)
aggDf.to_excel(writer, "SalesStats")

writer.save()
writer.close()

下面是 Jacob 在评论中建议的运行 sys 代码的结果。似乎两种方法都匹配。

sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)
[
'C:\\Users\\persona\\PythonWorkSpace\\TestPython', 
'C:\\Users\\persona\\anaconda3', 
'C:\\Users\\persona\\anaconda3\\DLLs', 
'C:\\Users\\persona\\anaconda3\\libs', 
'C:\\Users\\persona\\anaconda3\\pkgs', 
'C:\\Users\\persona\\anaconda3\\conda-meta', 
'C:\\Users\\persona\\anaconda3\\envs', 
'C:\\Users\\persona\\anaconda3\\etc', 
'C:\\Users\\persona\\anaconda3\\include', 
'C:\\Users\\persona\\anaconda3\\Lib', 
'C:\\Users\\persona\\anaconda3\\Library', 
'C:\\Users\\persona\\anaconda3\\man', 
'C:\\Users\\persona\\anaconda3\\Menu', 
'C:\\Users\\persona\\anaconda3\\Scripts', 
'C:\\Users\\persona\\anaconda3\\share', 
'C:\\Users\\persona\\anaconda3\\sip', 
'C:\\Users\\persona\\anaconda3\\tcl', 
'C:\\Users\\persona\\anaconda3\\Tools', 
'C:\\WINDOWS\\system32', 
'C:\\Users\\persona\\Anaconda3\\python36.zip', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32\\lib', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\Pythonwin'
]
^ right click method
--------------------

sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)
[
'C:\\Users\\persona\\PythonWorkSpace\\TestPython', 
'C:\\Users\\persona\\PythonWorkSpace\\TestPython', 
'C:\\Users\\persona\\anaconda3', 
'C:\\Users\\persona\\anaconda3\\DLLs', 
'C:\\Users\\persona\\anaconda3\\libs', 
'C:\\Users\\persona\\anaconda3\\pkgs', 
'C:\\Users\\persona\\anaconda3\\conda-meta', 
'C:\\Users\\persona\\anaconda3\\envs', 
'C:\\Users\\persona\\anaconda3\\etc', 
'C:\\Users\\persona\\anaconda3\\include', 
'C:\\Users\\persona\\anaconda3\\Lib', 
'C:\\Users\\persona\\anaconda3\\Library', 
'C:\\Users\\persona\\anaconda3\\man', 
'C:\\Users\\persona\\anaconda3\\Menu', 
'C:\\Users\\persona\\anaconda3\\Scripts', 
'C:\\Users\\persona\\anaconda3\\share', 
'C:\\Users\\persona\\anaconda3\\sip', 
'C:\\Users\\persona\\anaconda3\\tcl', 
'C:\\Users\\persona\\anaconda3\\Tools', 
'C:\\Program Files\\eclipse', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\win32\\lib', 
'C:\\Users\\persona\\Anaconda3\\lib\\site-packages\\Pythonwin', 
'C:\\Users\\persona\\Anaconda3\\python36.zip'
]

【问题讨论】:

    标签: python excel database pandas pyodbc


    【解决方案1】:

    制作一个这样的python文件:

    from sys import version_info, path
    print(version_info)
    print(path)
    

    然后尝试使用您提到的两种方法打开。结果应该匹配,如果不匹配,那就是你的问题。如果它们匹配,您应该添加更多日志记录/异常处理,以便我们了解失败的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多