代码在Jupyter笔记本上有效,但不能作为.py脚本使用

时间:2019-02-01 18:58:54

标签: python jupyter-notebook

我的代码的简化示例,请忽略语法错误:

    import numpy as np
    import pandas as pd
    import pymysql.cursors
    from datetime import date, datetime

    connection = pymysql.connect(host=,
                                 user=,
                                 password=,
                                 db=,
                                 cursorclass=pymysql.cursors.DictCursor)
    df1 = pd.read_sql()
    df2 = pd.read_sql(
    df3 = pd.read_sql()

    np.where(a=1, b, c)

    df1.append([df2, d3])



    path = r'C:\Users\\'
    df.to_csv(path+'a.csv')

在Jupyternotebook上,它按预期输出csv文件。但是,我下载了.py并使用python运行。重新启动计算机后,它将仅在我第一次运行csv时输出。有时它只会运行,什么也不会发生。为什么发生这种情况令我震惊。

2 个答案:

答案 0 :(得分:0)

我认为您添加的路径错误

如果您将路径更改为<select id="contacts-district_id" name="Contacts[district_id]" class="form-control"> <option value="1" my-attr="value">North Andaman</option> <option value="2" my-attr="value">South Andaman</option> <option value="3" my-attr="value">Nicobar</option> </select> ,那将是正确的

答案 1 :(得分:0)

在不知道实际代码是什么的情况下很难说,但是一个想法是,您与数据库的连接永远不会关闭,并且会以某种方式锁定数据库,因此您无法建立另一个连接。

当然,当您重新启动计算机时,第一个连接将终止。

要查看是否存在此问题,可以使用MySQL命令SHOW PROCESSLIST,该命令将为您列出不同的连接。如果在第一次运行脚本后,其中一个进程仍然与您刚建立的计算机的连接相同,则可能是问题所在。以下是命令中的文档:https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html

或者,您可以使用一些打印语句将数据库连接代码包装在try / except块中,并带有一些打印语句,以便确定这是否是一个问题,例如:

try:
    print "Right before connection"
    connection = pymysql.connect(host=,
                                 user=,
                                 password=,
                                 db=,
                                 cursorclass=pymysql.cursors.DictCursor)
    print "Right after connection"
except Exception as e:
    print "The Exception is:{}".format(str(e))


此外,您绝对应该绝对将要写入CSV的对象打印出来,以查看它们是否在第二次仍然有效(即,确保您实际上已填充了这些变量,而没有只是没有)