【问题标题】:Run a Python script without the IDE在没有 IDE 的情况下运行 Python 脚本
【发布时间】:2018-07-23 21:43:37
【问题描述】:

我编写了一个 python 脚本,它使用 tkinter 和 panda 来: 在桌面上选择一个 CSV 文件, 导入该数据, 做一些事情, 将创建的新数据框导出到新的 csv 中。

有没有一种方法可以运行程序而无需人员打开 python IDE 并从那里运行它?
目前,当我尝试单击并运行 tester.py 程序时,我看到 cmd_line(终端)框短暂打开,然后在没有 tkinter 提示或其他任何内容的情况下关闭。

我的目标,或者说我的理想是编写这个程序来帮助非技术同事自动执行一些任务。有没有一种方法可以设置这个程序,让他们点击一个 exe 文件或一个 bat 文件,然后让脚本运行,收集所需的用户输入,然后像我想要的那样输出 csv 文件?

我已经做了一些简短的谷歌搜索,但我无法找到明确的答案。

import tkinter
import csv
import pandas as pd    

from tkinter import Tk
from tkinter.filedialog import askopenfilename

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)

df1 = pd.read_csv(filename)

df2 = df1.query("STATE != 'NY'") # stores records not in NY

df3 = df1[df1["FIRST_NAME"].str.contains(" ", regex=True)] # stores records that have a space in the first name

dferror = [df2, df3]
dferror = pd.concat(dferror).drop_duplicates().reset_index() # merges dataframes, drops duplicates


dferror.to_csv("C:\errors.csv")

编辑添加我的导入条款

【问题讨论】:

  • 您的程序已经可以从 shell 运行(例如,bash 在 macOS 上的 Terminal.appcmd 在 Windows 上等)。如果您希望它可以从 GUI 运行……好吧,您似乎在 Windows 上,因此只需将 Windows 资源管理器配置为通过使用 Python 运行它们来打开 .py 文件,而不是在 IDE 中编辑它们。这确实是超级用户的问题,而不是 Stack Overflow。
  • 或者,您可以使用 py2exePyInstallercx_Freeze 之类的东西从您的脚本中创建一个可运行的 .exe 应用程序。然后,人们可以在资源管理器中双击它,它就会运行你的程序。你也可以让它包含.exe 中的所有 Python,这样你的同事甚至不需要安装 Python。如果这就是您想要的方式,请查找这三个项目的教程(也许可以寻找它们的替代品并查找这些替代品的教程),浏览它们,然后看看您想学习和使用哪一个。跨度>
  • @Marcus.Aurelianus 调度程序将如何提供帮助?
  • 从命令提示符运行它,这样您就有机会看到错误消息 - 这可能类似于“找不到名称'pd'”,因为您忘记导入所有您正在使用的模块。
  • 也许我需要改写一下,我完全有可能在错误的论坛上问这个问题。但我的目标是让这个程序完全脱离 GUI 运行(不进入 cmd 行)。我不担心需要查看错误,因为我已经完成了测试并且它正在按预期方式工作。我不希望我的非技术同事能够单击我的 .py 文件或 .exe 文件并运行我的程序。是不是更清楚了?

标签: python


【解决方案1】:

您可以根据您的操作系统编写一个小的可执行脚本

窗口

创建一个.bat 文件,您需要在其中执行python 文件的命令。

例如c:\python27\python.exe c:\somescript.py %*

参考看here

MacOS / Linux

创建一个.sh 文件,该文件可以从您的shell/终端或通过双击其符号链接来执行。
你的.sh 文件看起来像

#!/bin/bash

python PATH_TO_YOUR_PYTHON_FILE

然后您必须通过在终端中运行以下命令使其可执行

chmod u+x PATH_TO_.SH_FILE

或者,您可以创建指向您的 python 文件的符号链接并使其可执行。这个符号链接可以通过双击来执行。 创建符号链接:

ln -sf PATH_TO_.SH_FILE PATH_OF_SYMLINK

如果您只用一个名称代替PATH_OF_SYMLINK,它将在您当前的目录中创建。

【讨论】:

  • 在过去的 2 个工作日里,我一直在尝试将我的 python 脚本压缩(“冻结”,我相信是正确的术语)为 .exe,以便可以轻松运行。我的运气为 0(pyinstaller 不断出现错误)。我肯定会使用 .bat 文件。
  • 你好在这里为 mac 做了一切,当我到达 chmod u+x PATH_TO_.SH_FILE 部分时它不起作用。我走上了自己的路,但没有奏效。你能帮忙吗?
  • @JustCoookie 你能写下你采取的步骤和你遇到的错误吗?
  • @fireball.1 首先我创建了一个名为Calculator.sh 的新文件。然后在那个文件中,我输入了/Users/cooper/Desktop/Calculator/Calculator.py。然后在程序的终端中我输入了chmod u+x /Users/cooper/Desktop/Calculator/Calculator.sh 并没有发生任何事情
  • 您的文件内容应该是python /Users/cooper/Desktop/Calculator/Calculator.py。进行此更改后,在任何安装了 python 的系统上单击 Calculator.sh 文件就足够了。
【解决方案2】:

感谢@abarnert,解决方案是使用 Pyinstaller,它允许我将代码“冻结”到 exe 文件中

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 2018-12-10
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    相关资源
    最近更新 更多