在Windows上保持Python命令窗口打开

在Windows上保持Python命令窗口打开,python,windows,Python,Windows,好的,我知道这个问题已经被问过/回答过很多次了,但是解决方案在我的情况下不起作用。我在Raspberry Pi上的无头linux终端上使用2.7创建了一个Python脚本,它在那种环境下工作得非常好。 该脚本包含一个sqlite3数据库。在我的Windows 10计算机上,如果我从桌面双击Python脚本,它将创建database.db文件,但Python命令提示符在我看到输出之前关闭 从Windows命令提示符下运行Python脚本,例如“启动C:\Users\User\Desktop\scr

好的,我知道这个问题已经被问过/回答过很多次了,但是解决方案在我的情况下不起作用。我在Raspberry Pi上的无头linux终端上使用2.7创建了一个Python脚本,它在那种环境下工作得非常好。
该脚本包含一个sqlite3数据库。在我的Windows 10计算机上,如果我从桌面双击Python脚本,它将创建database.db文件,但Python命令提示符在我看到输出之前关闭

从Windows命令提示符下运行Python脚本,例如“启动C:\Users\User\Desktop\script.py”执行完全相同的操作

使用Run和'cmd/k C:\Users\User\Desktop\script.py'确实会使命令窗口保持不变,但在打开sqlite3数据库的行中会出现错误:

Traceback (most recent call last):
  File "C:\Users\User\Desktop\script.py", line 91, in <module>
    conn = sqlite3.connect("database.db")
sqlite3.OperationalError: unable to open database file
回溯(最近一次呼叫最后一次):
文件“C:\Users\User\Desktop\script.py”,第91行,在
conn=sqlite3.connect(“database.db”)
sqlite3.0错误:无法打开数据库文件

在Windows上运行Im的原因是,我试图用Tkinter构建GUI,而我的R Pi没有GUI,请帮助您需要传递完整路径,如
C:\Users\User\Desktop\database.db

原因是当从“cmd/k C:\Users\User\Desktop\script.py”运行时,调用该命令的工作目录不同,它试图在该文件夹中查找
database.db
,并给出错误信息

您可以通过以下方式检查当前的
目录

import os
print os.getcwd()

您需要传递完整路径,如
C:\Users\User\Desktop\database.db

原因是当从“cmd/k C:\Users\User\Desktop\script.py”运行时,调用该命令的工作目录不同,它试图在该文件夹中查找
database.db
,并给出错误信息

您可以通过以下方式检查当前的
目录

import os
print os.getcwd()

您不需要
cmd/k
start
。只需在命令提示符下运行run
C:\Users\User\Desktop\script.py
。好的,谢谢你的帮助,我已经习惯了Linux命令行,在适应Windows时遇到了问题事实上它不工作,Python脚本不能用这个方法正确执行,如果database.db丢失,用户必须输入来创建数据库,使用上述方法不会发生这种情况,但情况不应如此。在程序开始时添加
input(os.getpid())
,以打印PID并使其等待。然后在中,检查进程属性中的“Image”选项卡,查看路径、命令行和当前目录。当您不使用
start
时会发生什么变化?我终于明白了这一点,我必须在path中添加Python作为路径,它现在只需使用C:\Users\User\Desktop\script.py即可工作。您不需要
cmd/k
start
。只需在命令提示符下运行run
C:\Users\User\Desktop\script.py
。好的,谢谢你的帮助,我已经习惯了Linux命令行,在适应Windows时遇到了问题事实上它不工作,Python脚本不能用这个方法正确执行,如果database.db丢失,用户必须输入来创建数据库,使用上述方法不会发生这种情况,但情况不应如此。在程序开始时添加
input(os.getpid())
,以打印PID并使其等待。然后在中,检查进程属性中的“Image”选项卡,查看路径、命令行和当前目录。如果不使用
start
,会有什么变化?我终于明白了这一点,我必须在path中添加Python作为路径,它现在只需使用C:\Users\User\Desktop\script.py就可以了。如果database.db位于script目录中,您可以使用
path=os.path.join(os.path.dirname(\u file\uu),'database.db')
,或者,您可以使用
sys.argv[0]
来代替
\uuuuuu文件。后者应在冻结的可执行文件中工作,如py2exe或pyinstaller。如果database.db丢失,python脚本将请求用户输入,如果在执行python脚本的目录中找不到,则创建数据库。如果我双击script.py,这将非常有效,但我看不到输出。创建/检测database.db的所有其他方法都不起作用。如果database.db位于脚本目录中,则可以使用
path=os.path.join(os.path.dirname(_文件),'database.db')
,也可以使用
sys.argv[0]
代替
。后者应在冻结的可执行文件中工作,如py2exe或pyinstaller。如果database.db丢失,python脚本将请求用户输入,如果在执行python脚本的目录中找不到,则创建数据库。如果我双击script.py,这将非常有效,但我看不到输出。创建/检测database.db的所有其他方法都不起作用。