Python中pycharm运行时执行了两次的问题如何解决

RT,PyCharm版本号是Community Edition 2017.2.4 https://wx2.sinaimg.cn/mw690/62f40e5bgy1fmnnbkf91ij20qn0goqmj.jpg

以下是脚本

# coding: utf-8
import numpy as np
import pandas as pd
from tempfile import NamedTemporaryFile

np.random.seed(42) a = np.random.randn(365, 4)

tmpf = NamedTemporaryFile()

tmpf = ‘./data/t.csv’ store = pd.io.pytables.HDFStore(tmpf) print store

df = pd.DataFrame(a) store[‘df’] = df print store

print “Get”, store.get(‘df’).shape print “Lookup”, store[‘df’].shape print “Dotted”, store.df.shape

del store[‘df’] print “After del\n”, store

print “Before close”, store.is_open store.close() print “After close”, store.is_open

df.to_hdf(tmpf, ‘data’, format=‘table’) print pd.read_hdf(tmpf, ‘data’, where=[‘index>363’])

以下是运行的结果,之前还只是以为重复打印。刚开始t.csv文件是不存在的,所以 HDFStore 的结果是Empty。但是查看运行结果发现第二次的文件结果不为空,由此可以程序又运行了一次。

# 第一次运行
C:\APPS\Anaconda\python.exe D:/DATA/DEV/python/py.py
<class 'pandas.io.pytables.HDFStore'>
File path: ./data/t.csv
Empty    #结果为空
<class 'pandas.io.pytables.HDFStore'>
File path: ./data/t.csv
/df            frame        (shape->[365,4])
Get (365, 4)
Lookup (365, 4)
Dotted (365, 4)
After del
<class 'pandas.io.pytables.HDFStore'>
File path: ./data/t.csv
Empty
Before close True
After close False
            0         1         2         3
364  0.753342  0.381158  1.289753  0.673181
# 第二次运行
<class 'pandas.io.pytables.HDFStore'>
File path: ./data/t.csv
# 文件结果不为空,由此可以程序又运行了一次
/data            frame_table  (typ->appendable,nrows->365,ncols->4,indexers->[index]) 
<class 'pandas.io.pytables.HDFStore'>
File path: ./data/t.csv
/data            frame_table  (typ->appendable,nrows->365,ncols->4,indexers->[index])
/df              frame        (shape->[365,4])                                       
Get (365, 4)
Lookup (365, 4)
Dotted (365, 4)
After del
<class 'pandas.io.pytables.HDFStore'>
File path: ./data/t.csv
/data            frame_table  (typ->appendable,nrows->365,ncols->4,indexers->[index])
Before close True
After close False
            0         1         2         3
364  0.753342  0.381158  1.289753  0.673181

Process finished with exit code 0

请问是什么原因?


Python中pycharm运行时执行了两次的问题如何解决

3 回复

这个问题我遇到过,PyCharm里代码跑两次通常是因为配置问题。最常见的情况是你在PyCharm的运行配置里勾选了“Run with Python Console”。

打开你的运行配置看看:点右上角运行按钮旁边的下拉箭头,选“Edit Configurations”。在配置页面里,找到“Execution”部分,确保“Run with Python Console”这个选项没有被勾选。如果勾上了,PyCharm会在执行完脚本后保持控制台交互状态,看起来就像跑了两次。

另一个可能是你的代码里用了if __name__ == "__main__":,但同时又导入了某些模块,这些模块里也有执行代码。检查一下你的项目结构,确保没有循环导入或者在模块级别写执行代码。

还有种情况是用了某些测试框架或者调试器配置有问题。如果你在用pytest或unittest,检查一下测试配置是否正确。

总结:先检查运行配置里的Python Console选项。


提问的时候提供一个最小的重现例子

上面的代码以及运行结果就是例子。但是我将同样的代码拷到另台机器上的pycharm上运行却没有重复运行。所以我也不知道是什么原因了。

回到顶部