Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有IDE的情况下运行Python脚本_Python - Fatal编程技术网

在没有IDE的情况下运行Python脚本

在没有IDE的情况下运行Python脚本,python,Python,我编写了一个python脚本,它使用tkinter和panda来: 在桌面上选择一个CSV文件, 输入该数据, 做一些事情, 将创建的新数据帧导出到新的csv中 有没有一种方法可以运行程序,而不需要打开python IDE并从那里运行它? 当前,当我尝试单击并运行tester.py程序时,我看到cmd_line(terminal)框短暂打开,然后在没有tkinter提示或其他任何提示的情况下关闭 我的目标,或者说我的理想是,我写这个程序是为了帮助非技术性同事自动化一些任务。有没有一种方法可以让我

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

有没有一种方法可以运行程序,而不需要打开python IDE并从那里运行它?
当前,当我尝试单击并运行tester.py程序时,我看到cmd_line(terminal)框短暂打开,然后在没有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")

通过@abarnert编辑添加我的导入子句,解决方案是使用Pyinstaller,它允许我将代码“冻结”到exe文件中

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

窗户 创建一个
.bat
文件,其中需要命令来执行python文件

e、 g.
c:\python27\python.exe c:\somescript.py%*

供参考

MacOS/Linux 创建一个
.sh
文件,该文件可以从shell/终端或双击其sym链接执行
您的
.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

如果您只在_SYMLINK的
PATH_中放置一个名称,它将在您当前的目录中创建。

您的程序已经可以从shell运行(例如,macOS上的
bash
中的
Terminal.app
或Windows上的
cmd
等)。如果您想从GUI上运行它……那么,您似乎是在Windows上,因此需要配置Windows资源管理器,通过使用Python运行
.py
文件来打开它们,而不是在IDE中编辑它们。这确实是超级用户的问题,而不是堆栈溢出。或者,您可以使用类似于
py2exe
PyInstaller
cx\u Freeze
的方法,从脚本中创建一个可运行的
.exe
应用程序。然后,人们可以在资源管理器中双击它,它将运行您的程序。您还可以让它在
.exe
中包含所有Python,这样您的同事甚至不需要安装Python。如果您想这样做,请查找这三个项目的教程(也许可以查找它们的替代方案并查找这些替代方案的教程),浏览它们,看看您想学习和使用哪一个。@Marcus.Aurelianus scheduler在这里有何帮助?从命令提示符下运行它,因此,您有机会看到错误消息-可能类似于“name'pd'not found”,因为您忘了导入您正在使用的所有模块。也许我需要重新措辞,完全可能是我在错误的论坛上问了这个问题。但我的目标是让这个程序完全脱离GUI运行(不进入cmd行)。我不担心需要看到错误,因为我已经完成了测试,它正在按预期的方式工作。我不希望我的非技术性同事能够单击我的.py文件或.exe文件并让我的程序运行。这更清楚了吗?我在过去的两个工作日里一直试图将我的python脚本压缩成一个.exe,这样它就可以轻松运行了。我的运气为0(pyinstaller不断出错)。我肯定会使用.bat文件。