.py文件在 py.exe 中无法正常运行,则在 eclipse 中工作



嗨,我有一个简单的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 文件:

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

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

相关内容

  • 没有找到相关文章

最新更新