私はAnacondaを使用しています。環境を使ってsqlite3をインストールしました。PythonスクリプトがC++から呼び出されたときにSQLite3がエラーなしで無視される
私はIDEでスクリプトを実行すると、問題なくDBを作成して移植します。
スクリプトをC++から実行すると、SQLite3の部分は無視され、エラーは発生せず、データベースも作成または移入されません。私はスクリプトがC++から呼び出されたときに実行されることは分かっています。なぜなら、他の部分はまだ機能しているからですが、SQLiteの部分は無視されるだけです。
C++部分:何が起こっている
import math
import sys
import sqlite3
from pathlib import Path
conn = sqlite3.connect('CoSimTest.db')
c = conn.cursor()
def create_table():
c.execute('CREATE TABLE IF NOT EXISTS PowerSysInfo(time REAL, NumOfNodes INT, NumOfBuses INT, BusLocation TEXT, PhaseNumber INT, v1 REAL, a1 REAL, phase1 INT, v2 REAL, a2 REAL, phase2 INT, v3 REAL, a3 REAL, phase3 INT)')
create_table()
:
string command = "C:\\Anaconda3\\python.exe C:\\CoSim2\\PYTHON\\python\\MainMaster.py " + std::to_string(minute);
Pythonの一部? IDEでスクリプトを実行するのはどうしてうまくいくのですか?C++で.pyを実行すると、エラーなしでSQLiteの部分が無視されます。
私はデバッガで追加する必要があります:sqlite3._version_は与えます:*** AttributeError:モジュール 'sqlite3'には属性 '_version_'がありません – WBig
現在のディレクトリとは何ですか? –
スパイダーで? cwd = os.getcwd()。作業ディレクトリはC:\\ CoSim2 \\ PYTHON \\ python \\です。それはあなたが意味することですか? C++が実行されているOMNeT ++では、 'workspace'はC:\\ CoSim2なので、すごくいいはずですか? – WBig