我使用Anaconda,我已經使用環境安裝了sqlite3。當從C++調用Python腳本時,SQLite3被忽略,沒有錯誤
當我在IDE中運行我的腳本時,它創建並填充數據庫沒有問題。
當我從C++運行腳本時,它忽略了SQLite3部件,並且沒有發生錯誤,也沒有創建或填充數據庫。我知道該腳本在從C++調用時會運行,因爲它的其他部分仍然可以正常工作,但它只是忽略了SQLite方面。
C++部分:
string command = "C:\\Anaconda3\\python.exe C:\\CoSim2\\PYTHON\\python\\MainMaster.py " + std::to_string(minute);
的Python部分:
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()
這是怎麼回事?爲什麼在IDE中運行腳本完美工作,但是當C++運行.py時,它只是忽略了SQLite部件而沒有錯誤?
我應該添加在調試器中:sqlite3._version_將給出:*** AttributeError:模塊'sqlite3'沒有屬性'_version_' – WBig
什麼是當前目錄? –
在spyder? cwd = os.getcwd()。我的工作路徑目錄是C:\\ CoSim2 \\ PYTHON \\ python \\。你是這個意思嗎?在運行C++的OMNeT ++中,「工作空間」是C:\\ CoSim2,所以它應該都很好? – WBig