Я хочу передать дескриптор базы данных из моего perl сценария в мой python сценарий. Я хочу убедиться, что сценарий python выполняется в том же сеансе, что и perl.
Я уже пробовал это сделать -
Perl оболочка для вызова Python подпрограмма при прохождении DB Handle. Не работает, передаю ли я дескриптор как dbh или $ dbh Option1
# ----------------------------------------------------------------- #
# # Connect to MIDB schema and get connection handle
# # ----------------------------------------------------------------- #
my $dbh = ConnDb::connect_to_midb();
#
# ----------------------------------------------------------------- #
# # Call Python subroutine b
# ----------------------------------------------------------------- #
py_eval(<<'END');
from test_phy import b
b(dbh)
END
$ perl c_pl
Traceback (most recent call last):
File "<string>", line 2, in <module>
NameError: name 'dbh' is not defined
Error -- py_eval raised an exception at c_pl line 29.
Option2
# ----------------------------------------------------------------- #
# # Connect to MIDB schema and get connection handle
# # ----------------------------------------------------------------- #
my $dbh = MiDb::connect_to_midb();
#
# ----------------------------------------------------------------- #
# # Import python subroutine b
# ----------------------------------------------------------------- #
#
py_eval(<<'END');
from test_phy import b
END
# ----------------------------------------------------------------- #
# Call Python subroutine.
# ----------------------------------------------------------------- #
py_bind_func("main::Bar", "__main__", "b($dbh)");
print "The meaning of life is: ", Bar(), "\n";
$ perl a_pl
'b(DBI::db=HASH(0x23e6870))' is not a callable object at (eval 20) line 3.