pymssql ValueError: list.remove (x): x отсутствует в списке - PullRequest
0 голосов
/ 09 октября 2018

У меня проблема с следующим кодом:

import pandas as pd
import tensorflow
from matplotlib import pyplot
from sklearn.preprocessing import MinMaxScaler
from keras.models import model_from_json
import pymssql

загрузить json и создать модель

json_file = open('model_Messe_Dense.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights("model_Messe_Dense.h5")

Значения импорта

import pickle

y_scaler = pickle.load( open( "y_scaler.p", "rb" ))
x_scaler = pickle.load( open( "x_scaler.p","rb"))

Подключение к серверу иобновить значения

while True:
    try:
        conn = pymssql.connect(
            server='SHS_Messe', 
            user='sa', 
            password='sa',
            database='ChillWARE_Transfer'
        )

        stmt = "SELECT screw_speed,\
                        ID,\
                        Cylinder_Temperatur_Zone_1,\
                        Cylinder_Temperatur_Zone_2,\
                        Cylinder_Temperatur_Zone_3,\
                        Cylinder_Temperatur_Zone_4,\
                        Cylinder_Temperatur_Zone_5,\
                        Cylinder_Temperatur_Zone_6,\
                        mass_pressure,\
                        Update_Done\
                        FROM to_ChillWARE where ID= (SELECT MAX(ID) FROM 
to_ChillWARE)"
    # Excute Query here
        df = pd.read_sql(stmt,conn)

    except pymssql.Error as e:
        print (e)
        break


    feature_col_names = ['screw_speed','Cylinder_Temperatur_Zone_1','Cylinder_Temperatur_Zone_2','Cylinder_Temperatur_Zone_3',\
                     'Cylinder_Temperatur_Zone_4','Cylinder_Temperatur_Zone_5','Cylinder_Temperatur_Zone_6']
    predicted_class_names = ['mass_pressure']
    Update = ['Update_Done']

    x = df[feature_col_names].values
    Update = df[Update].values
    x_scaled = x_scaler.transform(x)
    x_test = x_scaled

    predicted = loaded_model.predict(x_test)
    predicted = y_scaler.inverse_transform(predicted)

    predicted=predicted.reshape(-1)
    predicted.shape
    predicted=predicted * 51

    value=str(predicted)

    value=value.replace('[','')
    value=value.replace(']','')

    Update = str(Update)
    Update=Update.replace('[','')
    Update=Update.replace(']','')

    if Update == "False":
        cursor = conn.cursor()

        query = "UPDATE to_ChillWARE SET [mass_pressure] ="
        query = query + value + ",[Update_Done] = 1"
        query = query + " where ID= (SELECT MAX(ID) FROM to_ChillWARE)"

        cursor.execute(query)
        conn.commit()

Я хочу проверить, есть ли у меня соединение с сервером mssql, и если Update == False, я хочу обновить значения.

На моем компьютере все работает просто отлично.Я выполнил код через python и через exe (pyinstaller).Но если я хочу перенести это на другой компьютер, я получаю ошибку:

Traceback (most recent call last):
File "Test.py", line 29, in <module>
File "src\pymssql.pyx", line 636, in pymssql.connect
File "src\_mssql.pyx", line 1957, in _mssql.connect
File "src\_mssql.pyx", line 675, in _mssql.MSSQLConnection.__init__
ValueError: list.remove(x): x not in list

Я думаю, что есть проблема с функцией pymssql.Я нашел ту же ошибку здесь, но я не понимаю решение:

https://github.com/sqlmapproject/sqlmap/issues/3035

Если кто-то может помочь, это было бы удивительно.

Спасибо всем

1 Ответ

0 голосов
/ 09 октября 2018

Согласно комментарию в предоставленной вами ссылке, это выглядит как ошибка подключения.

Вы проверили, что с компьютера, который вы пытаетесь использовать код, у вас есть доступ к серверу БД с именем серверапредоставлены и эти учетные данные?

Редактировать с решением из комментариев ниже:

Вы можете повторно использовать соединение, определив «conn = pymssql.connect ...» вне цикла while и всегда использовать эту переменнуюпоэтому вы не создаете соединение на каждой итерации.

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