Код работает на ноутбуке Jupyter, но не как скрипт .py - PullRequest
0 голосов
/ 01 февраля 2019

Упрощенный пример моего кода, пожалуйста, не обращайте внимания на синтаксические ошибки:

    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 голосов
/ 01 февраля 2019

Трудно сказать, не зная, какой у вас реальный код, но одна мысль состоит в том, что ваше соединение с вашей БД никогда не закрывается и каким-то образом блокирует БД, поэтому вы не можете установить другое соединение.

Первое соединение закончится, конечно, при перезагрузке компьютера.

Чтобы увидеть, если это проблема, вы можете использовать команду MySQL SHOW PROCESSLIST, которая выдаст вам список различных соединений;если после первого запуска скрипта один из процессов по-прежнему будет иметь то же соединение с вашей машиной, которое вы только что установили, это может быть проблемой.Вот документы по команде: https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html

В качестве альтернативы, вы можете обернуть код соединения с БД в блок try / Кроме того, чтобы убедиться, что это проблема, чтобы убедиться, что это проблема.Примерно так:

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, чтобы убедиться, что они все еще действительны во второй раз (т.е. убедитесь, что вы 'мы на самом деле заполнили эти переменные, и они не просто Nones)

0 голосов
/ 01 февраля 2019

Я думаю, что вы добавили путь неправильно

Если вы измените свой путь на df.to_csv(path+'\a.csv'), тогда он будет правильным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...